-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Expand file tree
/
Copy pathprotectedMethodTypeofParameter.js
More file actions
61 lines (53 loc) · 1.77 KB
/
protectedMethodTypeofParameter.js
File metadata and controls
61 lines (53 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//// [tests/cases/compiler/protectedMethodTypeofParameter.ts] ////
//// [protectedMethodTypeofParameter.ts]
export interface Properties {
propertyA: number;
propertyB: string;
}
export class A {
public getPropertyValue_Ok(
properties: Properties,
propertyName: keyof Properties,
): Properties[typeof propertyName] {
return properties[propertyName];
}
protected getPropertyValue_Protected(
properties: Properties,
propertyName: keyof Properties,
): Properties[typeof propertyName] {
return properties[propertyName];
}
protected setPropertyValue_Protected(
properties: Properties,
propertyName: keyof Properties,
propertyValue: Properties[typeof propertyName],
): void {
void properties;
void propertyName;
void propertyValue;
}
}
//// [protectedMethodTypeofParameter.js]
export class A {
getPropertyValue_Ok(properties, propertyName) {
return properties[propertyName];
}
getPropertyValue_Protected(properties, propertyName) {
return properties[propertyName];
}
setPropertyValue_Protected(properties, propertyName, propertyValue) {
void properties;
void propertyName;
void propertyValue;
}
}
//// [protectedMethodTypeofParameter.d.ts]
export interface Properties {
propertyA: number;
propertyB: string;
}
export declare class A {
getPropertyValue_Ok(properties: Properties, propertyName: keyof Properties): Properties[typeof propertyName];
protected getPropertyValue_Protected(properties: Properties, propertyName: keyof Properties): Properties[typeof propertyName];
protected setPropertyValue_Protected(properties: Properties, propertyName: keyof Properties, propertyValue: Properties[typeof propertyName]): void;
}