File: protectedStaticClassPropertyAccessibleWithinSubclass.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 (143 lines) | stat: -rw-r--r-- 3,938 bytes parent folder | download | duplicates (5)
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
=== tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts ===
class Base {
>Base : Base

    protected static x: string;
>x : string

    static staticMethod() {
>staticMethod : () => void

        Base.x;         // OK, accessed within their declaring class
>Base.x : string
>Base : typeof Base
>x : string

        Derived1.x;     // OK, accessed within their declaring class
>Derived1.x : string
>Derived1 : typeof Derived1
>x : string

        Derived2.x;     // OK, accessed within their declaring class
>Derived2.x : string
>Derived2 : typeof Derived2
>x : string

        Derived3.x;     // Error, redefined in a subclass, can only be accessed in the declaring class or one of its subclasses
>Derived3.x : string
>Derived3 : typeof Derived3
>x : string
    }
}

class Derived1 extends Base {
>Derived1 : Derived1
>Base : Base

    static staticMethod1() {
>staticMethod1 : () => void

        Base.x;         // OK, accessed within a class derived from their declaring class
>Base.x : string
>Base : typeof Base
>x : string

        Derived1.x;     // OK, accessed within a class derived from their declaring class
>Derived1.x : string
>Derived1 : typeof Derived1
>x : string

        Derived2.x;     // OK, accessed within a class derived from their declaring class
>Derived2.x : string
>Derived2 : typeof Derived2
>x : string

        Derived3.x;     // Error, redefined in a subclass, can only be accessed in the declaring class or one of its subclasses
>Derived3.x : string
>Derived3 : typeof Derived3
>x : string
    }
}

class Derived2 extends Base {
>Derived2 : Derived2
>Base : Base

    static staticMethod2() {
>staticMethod2 : () => void

        Base.x;         // OK, accessed within a class derived from their declaring class
>Base.x : string
>Base : typeof Base
>x : string

        Derived1.x;     // OK, accessed within a class derived from their declaring class
>Derived1.x : string
>Derived1 : typeof Derived1
>x : string

        Derived2.x;     // OK, accessed within a class derived from their declaring class
>Derived2.x : string
>Derived2 : typeof Derived2
>x : string

        Derived3.x;     // Error, redefined in a subclass, can only be accessed in the declaring class or one of its subclasses
>Derived3.x : string
>Derived3 : typeof Derived3
>x : string
    }
}

class Derived3 extends Derived1 {
>Derived3 : Derived3
>Derived1 : Derived1

    protected static x: string;
>x : string

    static staticMethod3() {
>staticMethod3 : () => void

        Base.x;         // OK, accessed within a class derived from their declaring class
>Base.x : string
>Base : typeof Base
>x : string

        Derived1.x;     // OK, accessed within a class derived from their declaring class
>Derived1.x : string
>Derived1 : typeof Derived1
>x : string

        Derived2.x;     // OK, accessed within a class derived from their declaring class
>Derived2.x : string
>Derived2 : typeof Derived2
>x : string

        Derived3.x;     // OK, accessed within their declaring class
>Derived3.x : string
>Derived3 : typeof Derived3
>x : string
    }
}


Base.x;         // Error, neither within their declaring class nor classes derived from their declaring class
>Base.x : string
>Base : typeof Base
>x : string

Derived1.x;     // Error, neither within their declaring class nor classes derived from their declaring class
>Derived1.x : string
>Derived1 : typeof Derived1
>x : string

Derived2.x;     // Error, neither within their declaring class nor classes derived from their declaring class
>Derived2.x : string
>Derived2 : typeof Derived2
>x : string

Derived3.x;     // Error, neither within their declaring class nor classes derived from their declaring class
>Derived3.x : string
>Derived3 : typeof Derived3
>x : string