Skip to content

Commit 6b1a96c

Browse files
committed
added basic set of tests for type aliases
1 parent d86d520 commit 6b1a96c

File tree

3 files changed

+369
-26
lines changed

3 files changed

+369
-26
lines changed
+103-7
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,126 @@
11
//// [typeAliases.ts]
22
// Writing a reference to a type alias has exactly the same effect as writing the aliased type itself.
33

4+
type T1 = number;
5+
var x1: number;
6+
var x1: T1;
7+
8+
type T2 = string;
9+
var x2: string;
10+
var x2: T2;
11+
12+
type T3 = boolean;
13+
var x3: boolean;
14+
var x3: T3;
15+
16+
type T4 = void;
17+
var x4: void;
18+
var x4: T4;
19+
20+
type T5 = any;
21+
var x5: any;
22+
var x5: T5;
23+
24+
interface I6 { x : string }
25+
type T6 = I6;
26+
var x6: I6;
27+
var x6: T6;
28+
29+
class C7 { x: boolean }
30+
type T7 = C7;
31+
var x7: C7;
32+
var x7: T7;
33+
34+
type T8 = string | boolean;
35+
var x8: string | boolean;
36+
var x8: T8;
37+
38+
type T9 = () => string;
39+
var x9: () => string;
40+
var x9: T9;
41+
42+
type T10 = { x: number };
43+
var x10: { x: number };
44+
var x10: T10;
45+
46+
type T11 = { new(): boolean };
47+
var x11: { new(): boolean };
48+
var x11: T11;
49+
50+
interface I13 { x: string };
51+
type T13 = I13;
52+
var x13_1: I13;
53+
var x13_2: T13
54+
55+
declare function foo13<T1 extends I13, T2 extends T13>(t1: T1, t2: T13): void;
56+
foo13(x13_1, x13_2);
57+
foo13(x13_2, x13_1);
58+
59+
type T14 = string;
60+
var x14: T14;
61+
62+
declare function foo14_1(x: T14): void;
63+
64+
declare function foo14_2(x: "click"): void;
65+
declare function foo14_2(x: T14): void;
66+
467
type Meters = number
568

669
enum E { x = 10 }
770

8-
declare function f(a: string): boolean;
9-
declare function f(a: Meters): string;
10-
f(E.x).toLowerCase();
71+
declare function f15(a: string): boolean;
72+
declare function f15(a: Meters): string;
73+
f15(E.x).toLowerCase();
1174

1275
type StringAndBoolean = [string, boolean]
13-
declare function f1(s: StringAndBoolean): string;
76+
declare function f16(s: StringAndBoolean): string;
1477
var x: [string, boolean];
15-
f1(x);
78+
f16(x);
1679

1780
var y: StringAndBoolean = ["1", false];
1881
y[0].toLowerCase();
1982

2083
//// [typeAliases.js]
2184
// Writing a reference to a type alias has exactly the same effect as writing the aliased type itself.
85+
var x1;
86+
var x1;
87+
var x2;
88+
var x2;
89+
var x3;
90+
var x3;
91+
var x4;
92+
var x4;
93+
var x5;
94+
var x5;
95+
var x6;
96+
var x6;
97+
var C7 = (function () {
98+
function C7() {
99+
}
100+
return C7;
101+
})();
102+
var x7;
103+
var x7;
104+
var x8;
105+
var x8;
106+
var x9;
107+
var x9;
108+
var x10;
109+
var x10;
110+
var x11;
111+
var x11;
112+
;
113+
var x13_1;
114+
var x13_2;
115+
foo13(x13_1, x13_2);
116+
foo13(x13_2, x13_1);
117+
var x14;
22118
var E;
23119
(function (E) {
24120
E[E["x"] = 10] = "x";
25121
})(E || (E = {}));
26-
f(10 /* x */).toLowerCase();
122+
f15(10 /* x */).toLowerCase();
27123
var x;
28-
f1(x);
124+
f16(x);
29125
var y = ["1", false];
30126
y[0].toLowerCase();

tests/baselines/reference/typeAliases.types

+198-14
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,211 @@
11
=== tests/cases/conformance/types/typeAliases/typeAliases.ts ===
22
// Writing a reference to a type alias has exactly the same effect as writing the aliased type itself.
33

4+
type T1 = number;
5+
>T1 : number
6+
7+
var x1: number;
8+
>x1 : number
9+
10+
var x1: T1;
11+
>x1 : number
12+
>T1 : number
13+
14+
type T2 = string;
15+
>T2 : string
16+
17+
var x2: string;
18+
>x2 : string
19+
20+
var x2: T2;
21+
>x2 : string
22+
>T2 : string
23+
24+
type T3 = boolean;
25+
>T3 : boolean
26+
27+
var x3: boolean;
28+
>x3 : boolean
29+
30+
var x3: T3;
31+
>x3 : boolean
32+
>T3 : boolean
33+
34+
type T4 = void;
35+
>T4 : void
36+
37+
var x4: void;
38+
>x4 : void
39+
40+
var x4: T4;
41+
>x4 : void
42+
>T4 : void
43+
44+
type T5 = any;
45+
>T5 : any
46+
47+
var x5: any;
48+
>x5 : any
49+
50+
var x5: T5;
51+
>x5 : any
52+
>T5 : any
53+
54+
interface I6 { x : string }
55+
>I6 : I6
56+
>x : string
57+
58+
type T6 = I6;
59+
>T6 : I6
60+
>I6 : I6
61+
62+
var x6: I6;
63+
>x6 : I6
64+
>I6 : I6
65+
66+
var x6: T6;
67+
>x6 : I6
68+
>T6 : I6
69+
70+
class C7 { x: boolean }
71+
>C7 : C7
72+
>x : boolean
73+
74+
type T7 = C7;
75+
>T7 : C7
76+
>C7 : C7
77+
78+
var x7: C7;
79+
>x7 : C7
80+
>C7 : C7
81+
82+
var x7: T7;
83+
>x7 : C7
84+
>T7 : C7
85+
86+
type T8 = string | boolean;
87+
>T8 : string | boolean
88+
89+
var x8: string | boolean;
90+
>x8 : string | boolean
91+
92+
var x8: T8;
93+
>x8 : string | boolean
94+
>T8 : string | boolean
95+
96+
type T9 = () => string;
97+
>T9 : () => string
98+
99+
var x9: () => string;
100+
>x9 : () => string
101+
102+
var x9: T9;
103+
>x9 : () => string
104+
>T9 : () => string
105+
106+
type T10 = { x: number };
107+
>T10 : { x: number; }
108+
>x : number
109+
110+
var x10: { x: number };
111+
>x10 : { x: number; }
112+
>x : number
113+
114+
var x10: T10;
115+
>x10 : { x: number; }
116+
>T10 : { x: number; }
117+
118+
type T11 = { new(): boolean };
119+
>T11 : new () => boolean
120+
121+
var x11: { new(): boolean };
122+
>x11 : new () => boolean
123+
124+
var x11: T11;
125+
>x11 : new () => boolean
126+
>T11 : new () => boolean
127+
128+
interface I13 { x: string };
129+
>I13 : I13
130+
>x : string
131+
132+
type T13 = I13;
133+
>T13 : I13
134+
>I13 : I13
135+
136+
var x13_1: I13;
137+
>x13_1 : I13
138+
>I13 : I13
139+
140+
var x13_2: T13
141+
>x13_2 : I13
142+
>T13 : I13
143+
144+
declare function foo13<T1 extends I13, T2 extends T13>(t1: T1, t2: T13): void;
145+
>foo13 : <T1 extends I13, T2 extends I13>(t1: T1, t2: I13) => void
146+
>T1 : T1
147+
>I13 : I13
148+
>T2 : T2
149+
>T13 : I13
150+
>t1 : T1
151+
>T1 : T1
152+
>t2 : I13
153+
>T13 : I13
154+
155+
foo13(x13_1, x13_2);
156+
>foo13(x13_1, x13_2) : void
157+
>foo13 : <T1 extends I13, T2 extends I13>(t1: T1, t2: I13) => void
158+
>x13_1 : I13
159+
>x13_2 : I13
160+
161+
foo13(x13_2, x13_1);
162+
>foo13(x13_2, x13_1) : void
163+
>foo13 : <T1 extends I13, T2 extends I13>(t1: T1, t2: I13) => void
164+
>x13_2 : I13
165+
>x13_1 : I13
166+
167+
type T14 = string;
168+
>T14 : string
169+
170+
var x14: T14;
171+
>x14 : string
172+
>T14 : string
173+
174+
declare function foo14_1(x: T14): void;
175+
>foo14_1 : (x: string) => void
176+
>x : string
177+
>T14 : string
178+
179+
declare function foo14_2(x: "click"): void;
180+
>foo14_2 : { (x: "click"): void; (x: string): void; }
181+
>x : "click"
182+
183+
declare function foo14_2(x: T14): void;
184+
>foo14_2 : { (x: "click"): void; (x: string): void; }
185+
>x : string
186+
>T14 : string
187+
4188
type Meters = number
5189
>Meters : number
6190

7191
enum E { x = 10 }
8192
>E : E
9193
>x : E
10194

11-
declare function f(a: string): boolean;
12-
>f : { (a: string): boolean; (a: number): string; }
195+
declare function f15(a: string): boolean;
196+
>f15 : { (a: string): boolean; (a: number): string; }
13197
>a : string
14198

15-
declare function f(a: Meters): string;
16-
>f : { (a: string): boolean; (a: number): string; }
199+
declare function f15(a: Meters): string;
200+
>f15 : { (a: string): boolean; (a: number): string; }
17201
>a : number
18202
>Meters : number
19203

20-
f(E.x).toLowerCase();
21-
>f(E.x).toLowerCase() : string
22-
>f(E.x).toLowerCase : () => string
23-
>f(E.x) : string
24-
>f : { (a: string): boolean; (a: number): string; }
204+
f15(E.x).toLowerCase();
205+
>f15(E.x).toLowerCase() : string
206+
>f15(E.x).toLowerCase : () => string
207+
>f15(E.x) : string
208+
>f15 : { (a: string): boolean; (a: number): string; }
25209
>E.x : E
26210
>E : typeof E
27211
>x : E
@@ -30,17 +214,17 @@ f(E.x).toLowerCase();
30214
type StringAndBoolean = [string, boolean]
31215
>StringAndBoolean : [string, boolean]
32216

33-
declare function f1(s: StringAndBoolean): string;
34-
>f1 : (s: [string, boolean]) => string
217+
declare function f16(s: StringAndBoolean): string;
218+
>f16 : (s: [string, boolean]) => string
35219
>s : [string, boolean]
36220
>StringAndBoolean : [string, boolean]
37221

38222
var x: [string, boolean];
39223
>x : [string, boolean]
40224

41-
f1(x);
42-
>f1(x) : string
43-
>f1 : (s: [string, boolean]) => string
225+
f16(x);
226+
>f16(x) : string
227+
>f16 : (s: [string, boolean]) => string
44228
>x : [string, boolean]
45229

46230
var y: StringAndBoolean = ["1", false];

0 commit comments

Comments
 (0)