Skip to content

Commit 7f63180

Browse files
committed
Adding tests
1 parent 95a314a commit 7f63180

File tree

3 files changed

+208
-0
lines changed

3 files changed

+208
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
//// [TypeGuardWithEnumUnion.ts]
2+
enum Color { R, G, B }
3+
4+
function f1(x: Color | string) {
5+
if (typeof x === "number") {
6+
var y = x;
7+
var y: Color;
8+
}
9+
else {
10+
var z = x;
11+
var z: string;
12+
}
13+
}
14+
15+
function f2(x: Color | string | string[]) {
16+
if (typeof x === "object") {
17+
var y = x;
18+
var y: string[];
19+
}
20+
if (typeof x === "number") {
21+
var z = x;
22+
var z: Color;
23+
}
24+
else {
25+
var w = x;
26+
var w: string | string[];
27+
}
28+
if (typeof x === "string") {
29+
var a = x;
30+
var a: string;
31+
}
32+
else {
33+
var b = x;
34+
var b: Color | string[];
35+
}
36+
}
37+
38+
39+
//// [TypeGuardWithEnumUnion.js]
40+
var Color;
41+
(function (Color) {
42+
Color[Color["R"] = 0] = "R";
43+
Color[Color["G"] = 1] = "G";
44+
Color[Color["B"] = 2] = "B";
45+
})(Color || (Color = {}));
46+
function f1(x) {
47+
if (typeof x === "number") {
48+
var y = x;
49+
var y;
50+
}
51+
else {
52+
var z = x;
53+
var z;
54+
}
55+
}
56+
function f2(x) {
57+
if (typeof x === "object") {
58+
var y = x;
59+
var y;
60+
}
61+
if (typeof x === "number") {
62+
var z = x;
63+
var z;
64+
}
65+
else {
66+
var w = x;
67+
var w;
68+
}
69+
if (typeof x === "string") {
70+
var a = x;
71+
var a;
72+
}
73+
else {
74+
var b = x;
75+
var b;
76+
}
77+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
=== tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts ===
2+
enum Color { R, G, B }
3+
>Color : Color
4+
>R : Color
5+
>G : Color
6+
>B : Color
7+
8+
function f1(x: Color | string) {
9+
>f1 : (x: string | Color) => void
10+
>x : string | Color
11+
>Color : Color
12+
13+
if (typeof x === "number") {
14+
>typeof x === "number" : boolean
15+
>typeof x : string
16+
>x : string | Color
17+
18+
var y = x;
19+
>y : Color
20+
>x : Color
21+
22+
var y: Color;
23+
>y : Color
24+
>Color : Color
25+
}
26+
else {
27+
var z = x;
28+
>z : string
29+
>x : string
30+
31+
var z: string;
32+
>z : string
33+
}
34+
}
35+
36+
function f2(x: Color | string | string[]) {
37+
>f2 : (x: string | string[] | Color) => void
38+
>x : string | string[] | Color
39+
>Color : Color
40+
41+
if (typeof x === "object") {
42+
>typeof x === "object" : boolean
43+
>typeof x : string
44+
>x : string | string[] | Color
45+
46+
var y = x;
47+
>y : string[]
48+
>x : string[]
49+
50+
var y: string[];
51+
>y : string[]
52+
}
53+
if (typeof x === "number") {
54+
>typeof x === "number" : boolean
55+
>typeof x : string
56+
>x : string | string[] | Color
57+
58+
var z = x;
59+
>z : Color
60+
>x : Color
61+
62+
var z: Color;
63+
>z : Color
64+
>Color : Color
65+
}
66+
else {
67+
var w = x;
68+
>w : string | string[]
69+
>x : string | string[]
70+
71+
var w: string | string[];
72+
>w : string | string[]
73+
}
74+
if (typeof x === "string") {
75+
>typeof x === "string" : boolean
76+
>typeof x : string
77+
>x : string | string[] | Color
78+
79+
var a = x;
80+
>a : string
81+
>x : string
82+
83+
var a: string;
84+
>a : string
85+
}
86+
else {
87+
var b = x;
88+
>b : string[] | Color
89+
>x : string[] | Color
90+
91+
var b: Color | string[];
92+
>b : string[] | Color
93+
>Color : Color
94+
}
95+
}
96+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
enum Color { R, G, B }
2+
3+
function f1(x: Color | string) {
4+
if (typeof x === "number") {
5+
var y = x;
6+
var y: Color;
7+
}
8+
else {
9+
var z = x;
10+
var z: string;
11+
}
12+
}
13+
14+
function f2(x: Color | string | string[]) {
15+
if (typeof x === "object") {
16+
var y = x;
17+
var y: string[];
18+
}
19+
if (typeof x === "number") {
20+
var z = x;
21+
var z: Color;
22+
}
23+
else {
24+
var w = x;
25+
var w: string | string[];
26+
}
27+
if (typeof x === "string") {
28+
var a = x;
29+
var a: string;
30+
}
31+
else {
32+
var b = x;
33+
var b: Color | string[];
34+
}
35+
}

0 commit comments

Comments
 (0)