File: logicalOrOperatorWithEveryType.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (246 lines) | stat: -rw-r--r-- 13,032 bytes parent folder | download | duplicates (7)
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
//// [logicalOrOperatorWithEveryType.ts]
// The || operator permits the operands to be of any type.
// If the || expression is not contextually typed, the right operand is contextually typed
// by the type of the left operand and the result is of the best common type of the two
// operand types.

enum E { a, b, c }

var a1: any;
var a2: boolean;
var a3: number
var a4: string;
var a5: void;
var a6: E;
var a7: {a: string};
var a8: string[];

var ra1 = a1 || a1;         // any       || any is any
var ra2 = a2 || a1;         // boolean   || any is any
var ra3 = a3 || a1;         // number    || any is any
var ra4 = a4 || a1;         // string    || any is any
var ra5 = a5 || a1;         // void      || any is any
var ra6 = a6 || a1;         // enum      || any is any
var ra7 = a7 || a1;         // object    || any is any
var ra8 = a8 || a1;         // array     || any is any
var ra9 = null || a1;       // null      || any is any
var ra10 = undefined || a1; // undefined || any is any

var rb1 = a1 || a2;         // any       || boolean is any
var rb2 = a2 || a2;         // boolean   || boolean is boolean
var rb3 = a3 || a2;         // number    || boolean is number | boolean
var rb4 = a4 || a2;         // string    || boolean is string | boolean
var rb5 = a5 || a2;         // void      || boolean is void | boolean
var rb6 = a6 || a2;         // enum      || boolean is E | boolean
var rb7 = a7 || a2;         // object    || boolean is object | boolean
var rb8 = a8 || a2;         // array     || boolean is array | boolean
var rb9 = null || a2;       // null      || boolean is boolean
var rb10= undefined || a2;  // undefined || boolean is boolean

var rc1 = a1 || a3;         // any       || number is any
var rc2 = a2 || a3;         // boolean   || number is boolean | number
var rc3 = a3 || a3;         // number    || number is number
var rc4 = a4 || a3;         // string    || number is string | number
var rc5 = a5 || a3;         // void      || number is void | number
var rc6 = a6 || a3;         // enum      || number is number
var rc7 = a7 || a3;         // object    || number is object | number
var rc8 = a8 || a3;         // array     || number is array | number
var rc9 = null || a3;       // null      || number is number
var rc10 = undefined || a3; // undefined || number is number

var rd1 = a1 || a4;         // any       || string is any
var rd2 = a2 || a4;         // boolean   || string is boolean | string
var rd3 = a3 || a4;         // number    || string is number | string
var rd4 = a4 || a4;         // string    || string is string
var rd5 = a5 || a4;         // void      || string is void | string
var rd6 = a6 || a4;         // enum      || string is enum | string
var rd7 = a7 || a4;         // object    || string is object | string
var rd8 = a8 || a4;         // array     || string is array | string
var rd9 = null || a4;       // null      || string is string
var rd10 = undefined || a4; // undefined || string is string

var re1 = a1 || a5;         // any       || void is any
var re2 = a2 || a5;         // boolean   || void is boolean | void
var re3 = a3 || a5;         // number    || void is number | void
var re4 = a4 || a5;         // string    || void is string | void
var re5 = a5 || a5;         // void      || void is void
var re6 = a6 || a5;         // enum      || void is enum | void
var re7 = a7 || a5;         // object    || void is object | void
var re8 = a8 || a5;         // array     || void is array | void
var re9 = null || a5;       // null      || void is void
var re10 = undefined || a5; // undefined || void is void

var rg1 = a1 || a6;         // any       || enum is any
var rg2 = a2 || a6;         // boolean   || enum is boolean | enum
var rg3 = a3 || a6;         // number    || enum is number
var rg4 = a4 || a6;         // string    || enum is string | enum
var rg5 = a5 || a6;         // void      || enum is void | enum
var rg6 = a6 || a6;         // enum      || enum is E
var rg7 = a7 || a6;         // object    || enum is object | enum
var rg8 = a8 || a6;         // array     || enum is array | enum
var rg9 = null || a6;       // null      || enum is E
var rg10 = undefined || a6; // undefined || enum is E

var rh1 = a1 || a7;         // any       || object is any
var rh2 = a2 || a7;         // boolean   || object is boolean | object
var rh3 = a3 || a7;         // number    || object is number | object
var rh4 = a4 || a7;         // string    || object is string | object
var rh5 = a5 || a7;         // void      || object is void | object
var rh6 = a6 || a7;         // enum      || object is enum | object
var rh7 = a7 || a7;         // object    || object is object
var rh8 = a8 || a7;         // array     || object is array | object
var rh9 = null || a7;       // null      || object is object
var rh10 = undefined || a7; // undefined || object is object

var ri1 = a1 || a8;         // any       || array is any
var ri2 = a2 || a8;         // boolean   || array is boolean | array
var ri3 = a3 || a8;         // number    || array is number | array
var ri4 = a4 || a8;         // string    || array is string | array
var ri5 = a5 || a8;         // void      || array is void | array
var ri6 = a6 || a8;         // enum      || array is enum | array
var ri7 = a7 || a8;         // object    || array is object | array
var ri8 = a8 || a8;         // array     || array is array
var ri9 = null || a8;       // null      || array is array
var ri10 = undefined || a8; // undefined || array is array

var rj1 = a1 || null;         // any       || null is any
var rj2 = a2 || null;         // boolean   || null is boolean
var rj3 = a3 || null;         // number    || null is number
var rj4 = a4 || null;         // string    || null is string
var rj5 = a5 || null;         // void      || null is void
var rj6 = a6 || null;         // enum      || null is E
var rj7 = a7 || null;         // object    || null is object
var rj8 = a8 || null;         // array     || null is array
var rj9 = null || null;       // null      || null is any
var rj10 = undefined || null; // undefined || null is any

var rf1 = a1 || undefined;         // any       || undefined is any
var rf2 = a2 || undefined;         // boolean   || undefined is boolean
var rf3 = a3 || undefined;         // number    || undefined is number
var rf4 = a4 || undefined;         // string    || undefined is string
var rf5 = a5 || undefined;         // void      || undefined is void
var rf6 = a6 || undefined;         // enum      || undefined is E
var rf7 = a7 || undefined;         // object    || undefined is object
var rf8 = a8 || undefined;         // array     || undefined is array
var rf9 = null || undefined;       // null      || undefined is any
var rf10 = undefined || undefined; // undefined || undefined is any

//// [logicalOrOperatorWithEveryType.js]
// The || operator permits the operands to be of any type.
// If the || expression is not contextually typed, the right operand is contextually typed
// by the type of the left operand and the result is of the best common type of the two
// operand types.
var E;
(function (E) {
    E[E["a"] = 0] = "a";
    E[E["b"] = 1] = "b";
    E[E["c"] = 2] = "c";
})(E || (E = {}));
var a1;
var a2;
var a3;
var a4;
var a5;
var a6;
var a7;
var a8;
var ra1 = a1 || a1; // any       || any is any
var ra2 = a2 || a1; // boolean   || any is any
var ra3 = a3 || a1; // number    || any is any
var ra4 = a4 || a1; // string    || any is any
var ra5 = a5 || a1; // void      || any is any
var ra6 = a6 || a1; // enum      || any is any
var ra7 = a7 || a1; // object    || any is any
var ra8 = a8 || a1; // array     || any is any
var ra9 = null || a1; // null      || any is any
var ra10 = undefined || a1; // undefined || any is any
var rb1 = a1 || a2; // any       || boolean is any
var rb2 = a2 || a2; // boolean   || boolean is boolean
var rb3 = a3 || a2; // number    || boolean is number | boolean
var rb4 = a4 || a2; // string    || boolean is string | boolean
var rb5 = a5 || a2; // void      || boolean is void | boolean
var rb6 = a6 || a2; // enum      || boolean is E | boolean
var rb7 = a7 || a2; // object    || boolean is object | boolean
var rb8 = a8 || a2; // array     || boolean is array | boolean
var rb9 = null || a2; // null      || boolean is boolean
var rb10 = undefined || a2; // undefined || boolean is boolean
var rc1 = a1 || a3; // any       || number is any
var rc2 = a2 || a3; // boolean   || number is boolean | number
var rc3 = a3 || a3; // number    || number is number
var rc4 = a4 || a3; // string    || number is string | number
var rc5 = a5 || a3; // void      || number is void | number
var rc6 = a6 || a3; // enum      || number is number
var rc7 = a7 || a3; // object    || number is object | number
var rc8 = a8 || a3; // array     || number is array | number
var rc9 = null || a3; // null      || number is number
var rc10 = undefined || a3; // undefined || number is number
var rd1 = a1 || a4; // any       || string is any
var rd2 = a2 || a4; // boolean   || string is boolean | string
var rd3 = a3 || a4; // number    || string is number | string
var rd4 = a4 || a4; // string    || string is string
var rd5 = a5 || a4; // void      || string is void | string
var rd6 = a6 || a4; // enum      || string is enum | string
var rd7 = a7 || a4; // object    || string is object | string
var rd8 = a8 || a4; // array     || string is array | string
var rd9 = null || a4; // null      || string is string
var rd10 = undefined || a4; // undefined || string is string
var re1 = a1 || a5; // any       || void is any
var re2 = a2 || a5; // boolean   || void is boolean | void
var re3 = a3 || a5; // number    || void is number | void
var re4 = a4 || a5; // string    || void is string | void
var re5 = a5 || a5; // void      || void is void
var re6 = a6 || a5; // enum      || void is enum | void
var re7 = a7 || a5; // object    || void is object | void
var re8 = a8 || a5; // array     || void is array | void
var re9 = null || a5; // null      || void is void
var re10 = undefined || a5; // undefined || void is void
var rg1 = a1 || a6; // any       || enum is any
var rg2 = a2 || a6; // boolean   || enum is boolean | enum
var rg3 = a3 || a6; // number    || enum is number
var rg4 = a4 || a6; // string    || enum is string | enum
var rg5 = a5 || a6; // void      || enum is void | enum
var rg6 = a6 || a6; // enum      || enum is E
var rg7 = a7 || a6; // object    || enum is object | enum
var rg8 = a8 || a6; // array     || enum is array | enum
var rg9 = null || a6; // null      || enum is E
var rg10 = undefined || a6; // undefined || enum is E
var rh1 = a1 || a7; // any       || object is any
var rh2 = a2 || a7; // boolean   || object is boolean | object
var rh3 = a3 || a7; // number    || object is number | object
var rh4 = a4 || a7; // string    || object is string | object
var rh5 = a5 || a7; // void      || object is void | object
var rh6 = a6 || a7; // enum      || object is enum | object
var rh7 = a7 || a7; // object    || object is object
var rh8 = a8 || a7; // array     || object is array | object
var rh9 = null || a7; // null      || object is object
var rh10 = undefined || a7; // undefined || object is object
var ri1 = a1 || a8; // any       || array is any
var ri2 = a2 || a8; // boolean   || array is boolean | array
var ri3 = a3 || a8; // number    || array is number | array
var ri4 = a4 || a8; // string    || array is string | array
var ri5 = a5 || a8; // void      || array is void | array
var ri6 = a6 || a8; // enum      || array is enum | array
var ri7 = a7 || a8; // object    || array is object | array
var ri8 = a8 || a8; // array     || array is array
var ri9 = null || a8; // null      || array is array
var ri10 = undefined || a8; // undefined || array is array
var rj1 = a1 || null; // any       || null is any
var rj2 = a2 || null; // boolean   || null is boolean
var rj3 = a3 || null; // number    || null is number
var rj4 = a4 || null; // string    || null is string
var rj5 = a5 || null; // void      || null is void
var rj6 = a6 || null; // enum      || null is E
var rj7 = a7 || null; // object    || null is object
var rj8 = a8 || null; // array     || null is array
var rj9 = null || null; // null      || null is any
var rj10 = undefined || null; // undefined || null is any
var rf1 = a1 || undefined; // any       || undefined is any
var rf2 = a2 || undefined; // boolean   || undefined is boolean
var rf3 = a3 || undefined; // number    || undefined is number
var rf4 = a4 || undefined; // string    || undefined is string
var rf5 = a5 || undefined; // void      || undefined is void
var rf6 = a6 || undefined; // enum      || undefined is E
var rf7 = a7 || undefined; // object    || undefined is object
var rf8 = a8 || undefined; // array     || undefined is array
var rf9 = null || undefined; // null      || undefined is any
var rf10 = undefined || undefined; // undefined || undefined is any