File: constEnumPropertyAccess1.types

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (91 lines) | stat: -rw-r--r-- 1,254 bytes parent folder | download | duplicates (4)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
=== tests/cases/conformance/constEnums/constEnumPropertyAccess1.ts ===
// constant enum declarations are completely erased in the emitted JavaScript code.
// it is an error to reference a constant enum object in any other context
// than a property access that selects one of the enum's members

const enum G {
>G : G

    A = 1,
>A : G
>1 : 1

    B = 2,
>B : G
>2 : 2

    C = A + B,
>C : G
>A + B : number
>A : G
>B : G

    D = A * 2
>D : G
>A * 2 : number
>A : G
>2 : 2
}

var o: {
>o : { [idx: number]: boolean; }

    [idx: number]: boolean
>idx : number

} = {
>{        1: true    } : { 1: true; }

        1: true
>1 : true
>true : true

    };

var a = G.A;
>a : G
>G.A : G
>G : typeof G
>A : G

var a1 = G["A"];
>a1 : G
>G["A"] : G
>G : typeof G
>"A" : "A"

var g = o[G.A];
>g : boolean
>o[G.A] : boolean
>o : { [idx: number]: boolean; }
>G.A : G
>G : typeof G
>A : G

class C {
>C : C

    [G.A]() { }
>[G.A] : () => void
>G.A : G
>G : typeof G
>A : G

    get [G.B]() {
>[G.B] : boolean
>G.B : G
>G : typeof G
>B : G

        return true;
>true : true
    }
    set [G.B](x: number) { }
>[G.B] : number
>G.B : G
>G : typeof G
>B : G
>x : number
}