File: typeGuardConstructorPrimitiveTypes.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 (121 lines) | stat: -rw-r--r-- 3,252 bytes parent folder | download | duplicates (4)
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
=== tests/cases/compiler/typeGuardConstructorPrimitiveTypes.ts ===
// Narrow a union of primitive types
let var1: string | number | boolean | any[] | symbol | bigint;
>var1 : string | number | bigint | boolean | symbol | any[]

if (var1.constructor === String) {
>var1.constructor === String : boolean
>var1.constructor : Function
>var1 : string | number | bigint | boolean | symbol | any[]
>constructor : Function
>String : StringConstructor

    var1; // string
>var1 : string
}
if (var1.constructor === Number) {
>var1.constructor === Number : boolean
>var1.constructor : Function
>var1 : string | number | bigint | boolean | symbol | any[]
>constructor : Function
>Number : NumberConstructor

    var1; // number
>var1 : number
}
if (var1.constructor === Boolean) {
>var1.constructor === Boolean : boolean
>var1.constructor : Function
>var1 : string | number | bigint | boolean | symbol | any[]
>constructor : Function
>Boolean : BooleanConstructor

    var1; // boolean
>var1 : boolean
}
if (var1.constructor === Array) {
>var1.constructor === Array : boolean
>var1.constructor : Function
>var1 : string | number | bigint | boolean | symbol | any[]
>constructor : Function
>Array : ArrayConstructor

    var1; // any[]
>var1 : any[]
}
if (var1.constructor === Symbol) {
>var1.constructor === Symbol : boolean
>var1.constructor : Function
>var1 : string | number | bigint | boolean | symbol | any[]
>constructor : Function
>Symbol : SymbolConstructor

    var1; // symbol
>var1 : symbol
}
if (var1.constructor === BigInt) {
>var1.constructor === BigInt : boolean
>var1.constructor : Function
>var1 : string | number | bigint | boolean | symbol | any[]
>constructor : Function
>BigInt : BigIntConstructor

    var1; // bigint
>var1 : bigint
}

// Narrow a union of primitive object types
let var2: String | Number | Boolean | Symbol | BigInt;
>var2 : String | Number | Boolean | BigInt | Symbol

if (var2.constructor === String) {
>var2.constructor === String : boolean
>var2.constructor : Function
>var2 : String | Number | Boolean | BigInt | Symbol
>constructor : Function
>String : StringConstructor

    var2; // String
>var2 : String
}
if (var2.constructor === Number) {
>var2.constructor === Number : boolean
>var2.constructor : Function
>var2 : String | Number | Boolean | BigInt | Symbol
>constructor : Function
>Number : NumberConstructor

    var2; // Number
>var2 : Number
}
if (var2.constructor === Boolean) {
>var2.constructor === Boolean : boolean
>var2.constructor : Function
>var2 : String | Number | Boolean | BigInt | Symbol
>constructor : Function
>Boolean : BooleanConstructor

    var2; // Boolean
>var2 : Boolean
}
if (var2.constructor === Symbol) {
>var2.constructor === Symbol : boolean
>var2.constructor : Function
>var2 : String | Number | Boolean | BigInt | Symbol
>constructor : Function
>Symbol : SymbolConstructor

    var2; // Symbol
>var2 : Symbol
}
if (var2.constructor === BigInt) {
>var2.constructor === BigInt : boolean
>var2.constructor : Function
>var2 : String | Number | Boolean | BigInt | Symbol
>constructor : Function
>BigInt : BigIntConstructor

    var2; // BigInt
>var2 : BigInt
}