File: classConstructorAccessibility2.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (169 lines) | stat: -rw-r--r-- 3,397 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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
=== tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility2.ts ===
class BaseA {
>BaseA : BaseA

    public constructor(public x: number) { }
>x : number

    createInstance() { new BaseA(1); }
>createInstance : () => void
>new BaseA(1) : BaseA
>BaseA : typeof BaseA
>1 : 1
}

class BaseB {
>BaseB : BaseB

    protected constructor(public x: number) { }
>x : number

    createInstance() { new BaseB(2); }
>createInstance : () => void
>new BaseB(2) : BaseB
>BaseB : typeof BaseB
>2 : 2
}

class BaseC {
>BaseC : BaseC

    private constructor(public x: number) { }
>x : number

    createInstance() { new BaseC(3); }
>createInstance : () => void
>new BaseC(3) : BaseC
>BaseC : typeof BaseC
>3 : 3

    static staticInstance() { new BaseC(4); }
>staticInstance : () => void
>new BaseC(4) : BaseC
>BaseC : typeof BaseC
>4 : 4
}

class DerivedA extends BaseA {
>DerivedA : DerivedA
>BaseA : BaseA

    constructor(public x: number) { super(x); }
>x : number
>super(x) : void
>super : typeof BaseA
>x : number

    createInstance() { new DerivedA(5); }
>createInstance : () => void
>new DerivedA(5) : DerivedA
>DerivedA : typeof DerivedA
>5 : 5

    createBaseInstance() { new BaseA(6); }
>createBaseInstance : () => void
>new BaseA(6) : BaseA
>BaseA : typeof BaseA
>6 : 6

    static staticBaseInstance() { new BaseA(7); }
>staticBaseInstance : () => void
>new BaseA(7) : BaseA
>BaseA : typeof BaseA
>7 : 7
}

class DerivedB extends BaseB {
>DerivedB : DerivedB
>BaseB : BaseB

    constructor(public x: number) { super(x); }
>x : number
>super(x) : void
>super : typeof BaseB
>x : number

    createInstance() { new DerivedB(7); }
>createInstance : () => void
>new DerivedB(7) : DerivedB
>DerivedB : typeof DerivedB
>7 : 7

    createBaseInstance() { new BaseB(8); } // ok
>createBaseInstance : () => void
>new BaseB(8) : BaseB
>BaseB : typeof BaseB
>8 : 8

    static staticBaseInstance() { new BaseB(9); } // ok
>staticBaseInstance : () => void
>new BaseB(9) : BaseB
>BaseB : typeof BaseB
>9 : 9
}

class DerivedC extends BaseC { // error
>DerivedC : DerivedC
>BaseC : BaseC

    constructor(public x: number) { super(x); }
>x : number
>super(x) : void
>super : typeof BaseC
>x : number

    createInstance() { new DerivedC(9); }
>createInstance : () => void
>new DerivedC(9) : DerivedC
>DerivedC : typeof DerivedC
>9 : 9

    createBaseInstance() { new BaseC(10); } // error
>createBaseInstance : () => void
>new BaseC(10) : any
>BaseC : typeof BaseC
>10 : 10

    static staticBaseInstance() { new BaseC(11); } // error
>staticBaseInstance : () => void
>new BaseC(11) : any
>BaseC : typeof BaseC
>11 : 11
}

var ba = new BaseA(1);
>ba : BaseA
>new BaseA(1) : BaseA
>BaseA : typeof BaseA
>1 : 1

var bb = new BaseB(1); // error
>bb : any
>new BaseB(1) : any
>BaseB : typeof BaseB
>1 : 1

var bc = new BaseC(1); // error
>bc : any
>new BaseC(1) : any
>BaseC : typeof BaseC
>1 : 1

var da = new DerivedA(1);
>da : DerivedA
>new DerivedA(1) : DerivedA
>DerivedA : typeof DerivedA
>1 : 1

var db = new DerivedB(1);
>db : DerivedB
>new DerivedB(1) : DerivedB
>DerivedB : typeof DerivedB
>1 : 1

var dc = new DerivedC(1);
>dc : DerivedC
>new DerivedC(1) : DerivedC
>DerivedC : typeof DerivedC
>1 : 1