File: stringLiteralsWithSwitchStatements03.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 (93 lines) | stat: -rw-r--r-- 1,814 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
=== tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements03.ts ===
let x: "foo";
>x : "foo"

let y: "foo" | "bar"; 
>y : "foo" | "bar"

let z: "bar";
>z : "bar"

declare function randBool(): boolean;
>randBool : () => boolean

switch (x) {
>x : "foo"

    case randBool() ? "foo" : "baz":
>randBool() ? "foo" : "baz" : "foo" | "baz"
>randBool() : boolean
>randBool : () => boolean
>"foo" : "foo"
>"baz" : "baz"

        break;
    case (randBool() ? ("bar") : "baz" ? "bar" : "baz"):
>(randBool() ? ("bar") : "baz" ? "bar" : "baz") : "bar" | "baz"
>randBool() ? ("bar") : "baz" ? "bar" : "baz" : "bar" | "baz"
>randBool() : boolean
>randBool : () => boolean
>("bar") : "bar"
>"bar" : "bar"
>"baz" ? "bar" : "baz" : "bar" | "baz"
>"baz" : "baz"
>"bar" : "bar"
>"baz" : "baz"

        break;
    case (("bar")):
>(("bar")) : "bar"
>("bar") : "bar"
>"bar" : "bar"

        break;
    case (x, y, ("baz")):
>(x, y, ("baz")) : "baz"
>x, y, ("baz") : "baz"
>x, y : "foo" | "bar"
>x : "foo"
>y : "foo" | "bar"
>("baz") : "baz"
>"baz" : "baz"

        x;
>x : never

        y;
>y : "foo" | "bar"

        break;
    case (("foo" || ("bar"))):
>(("foo" || ("bar"))) : "foo" | "bar"
>("foo" || ("bar")) : "foo" | "bar"
>"foo" || ("bar") : "foo" | "bar"
>"foo" : "foo"
>("bar") : "bar"
>"bar" : "bar"

        break;
    case (("bar" || ("baz"))):
>(("bar" || ("baz"))) : "bar" | "baz"
>("bar" || ("baz")) : "bar" | "baz"
>"bar" || ("baz") : "bar" | "baz"
>"bar" : "bar"
>("baz") : "baz"
>"baz" : "baz"

        break;
    case z || "baz":
>z || "baz" : "bar" | "baz"
>z : "bar"
>"baz" : "baz"

    case "baz" || z:
>"baz" || z : "bar" | "baz"
>"baz" : "baz"
>z : "bar"

        z;
>z : "bar"

        break;
}