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
|