File tree Expand file tree Collapse file tree 3 files changed +208
-0
lines changed
cases/conformance/expressions/typeGuards Expand file tree Collapse file tree 3 files changed +208
-0
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments