File: privateNamesAndkeyof.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (68 lines) | stat: -rw-r--r-- 1,209 bytes parent folder | download | duplicates (3)
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"