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
|
=== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates02.ts ===
export interface Foo {
a: string;
>a : string
b: number;
>b : number
c: boolean;
>c : boolean
}
export const obj = {
>obj : { m(): this is Foo; }
>{ m(): this is Foo { let dis = this as {} as Foo; return dis.a != null && dis.b != null && dis.c != null; }} : { m(): this is Foo; }
m(): this is Foo {
>m : () => this is Foo
let dis = this as {} as Foo;
>dis : Foo
>this as {} as Foo : Foo
>this as {} : {}
>this : any
return dis.a != null && dis.b != null && dis.c != null;
>dis.a != null && dis.b != null && dis.c != null : boolean
>dis.a != null && dis.b != null : boolean
>dis.a != null : boolean
>dis.a : string
>dis : Foo
>a : string
>null : null
>dis.b != null : boolean
>dis.b : number
>dis : Foo
>b : number
>null : null
>dis.c != null : boolean
>dis.c : boolean
>dis : Foo
>c : boolean
>null : null
}
}
|