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
|
=== tests/cases/compiler/typeGuardConstructorNarrowAny.ts ===
// Narrowing any to primitives
let var1: any;
>var1 : any
if (var1.constructor === String) {
>var1.constructor === String : boolean
>var1.constructor : any
>var1 : any
>constructor : any
>String : StringConstructor
var1; // String
>var1 : String
}
if (var1.constructor === Number) {
>var1.constructor === Number : boolean
>var1.constructor : any
>var1 : any
>constructor : any
>Number : NumberConstructor
var1; // Number
>var1 : Number
}
if (var1.constructor === Boolean) {
>var1.constructor === Boolean : boolean
>var1.constructor : any
>var1 : any
>constructor : any
>Boolean : BooleanConstructor
var1; // Boolean
>var1 : Boolean
}
if (var1.constructor === Array) {
>var1.constructor === Array : boolean
>var1.constructor : any
>var1 : any
>constructor : any
>Array : ArrayConstructor
var1; // any[]
>var1 : any[]
}
if (var1.constructor === Symbol) {
>var1.constructor === Symbol : boolean
>var1.constructor : any
>var1 : any
>constructor : any
>Symbol : SymbolConstructor
var1; // Symbol
>var1 : Symbol
}
if (var1.constructor === BigInt) {
>var1.constructor === BigInt : boolean
>var1.constructor : any
>var1 : any
>constructor : any
>BigInt : BigIntConstructor
var1; // BigInt
>var1 : BigInt
}
|