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 62 63 64 65 66 67 68
|
=== tests/cases/conformance/classes/members/privateNames/privateNamesAndkeyof.ts ===
class A {
>A : A
#fooField = 3;
>#fooField : number
>3 : 3
#fooMethod() { };
>#fooMethod : () => void
get #fooProp() { return 1; };
>#fooProp : number
>1 : 1
set #fooProp(value: number) { };
>#fooProp : number
>value : number
bar = 3;
>bar : number
>3 : 3
baz = 3;
>baz : number
>3 : 3
}
// `keyof A` should not include '#foo*'
let k: keyof A = "bar"; // OK
>k : keyof A
>"bar" : "bar"
k = "baz"; // OK
>k = "baz" : "baz"
>k : keyof A
>"baz" : "baz"
k = "#fooField"; // Error
>k = "#fooField" : "#fooField"
>k : keyof A
>"#fooField" : "#fooField"
k = "#fooMethod"; // Error
>k = "#fooMethod" : "#fooMethod"
>k : keyof A
>"#fooMethod" : "#fooMethod"
k = "#fooProp"; // Error
>k = "#fooProp" : "#fooProp"
>k : keyof A
>"#fooProp" : "#fooProp"
k = "fooField"; // Error
>k = "fooField" : "fooField"
>k : keyof A
>"fooField" : "fooField"
k = "fooMethod"; // Error
>k = "fooMethod" : "fooMethod"
>k : keyof A
>"fooMethod" : "fooMethod"
k = "fooProp"; // Error
>k = "fooProp" : "fooProp"
>k : keyof A
>"fooProp" : "fooProp"
|