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
|
=== tests/cases/conformance/types/any/narrowFromAnyWithInstanceof.ts ===
declare var x: any;
>x : any
if (x instanceof Function) { // 'any' is not narrowed when target type is 'Function'
>x instanceof Function : boolean
>x : any
>Function : FunctionConstructor
x();
>x() : any
>x : any
x(1, 2, 3);
>x(1, 2, 3) : any
>x : any
>1 : 1
>2 : 2
>3 : 3
x("hello!");
>x("hello!") : any
>x : any
>"hello!" : "hello!"
x.prop;
>x.prop : any
>x : any
>prop : any
}
if (x instanceof Object) { // 'any' is not narrowed when target type is 'Object'
>x instanceof Object : boolean
>x : any
>Object : ObjectConstructor
x.method();
>x.method() : any
>x.method : any
>x : any
>method : any
x();
>x() : any
>x : any
}
if (x instanceof Error) { // 'any' is narrowed to types other than 'Function'/'Object'
>x instanceof Error : boolean
>x : any
>Error : ErrorConstructor
x.message;
>x.message : string
>x : Error
>message : string
x.mesage;
>x.mesage : any
>x : Error
>mesage : any
}
if (x instanceof Date) {
>x instanceof Date : boolean
>x : any
>Date : DateConstructor
x.getDate();
>x.getDate() : number
>x.getDate : () => number
>x : Date
>getDate : () => number
x.getHuors();
>x.getHuors() : any
>x.getHuors : any
>x : Date
>getHuors : any
}
|