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
|
=== tests/cases/conformance/expressions/typeGuards/typeGuardNarrowsPrimitiveIntersection.ts ===
type Tag = {__tag: any};
>Tag : { __tag: any; }
>__tag : any
declare function isNonBlank(value: string) : value is (string & Tag);
>isNonBlank : (value: string) => value is string & Tag
>value : string
declare function doThis(value: string & Tag): void;
>doThis : (value: string & Tag) => void
>value : string & Tag
declare function doThat(value: string) : void;
>doThat : (value: string) => void
>value : string
let value: string;
>value : string
if (isNonBlank(value)) {
>isNonBlank(value) : boolean
>isNonBlank : (value: string) => value is string & Tag
>value : string
doThis(value);
>doThis(value) : void
>doThis : (value: string & Tag) => void
>value : string & Tag
} else {
doThat(value);
>doThat(value) : void
>doThat : (value: string) => void
>value : string
}
const enum Tag2 {}
>Tag2 : Tag2
declare function isNonBlank2(value: string) : value is (string & Tag2);
>isNonBlank2 : (value: string) => value is never
>value : string
declare function doThis2(value: string & Tag2): void;
>doThis2 : (value: string & Tag2) => void
>value : never
declare function doThat2(value: string) : void;
>doThat2 : (value: string) => void
>value : string
if (isNonBlank2(value)) {
>isNonBlank2(value) : boolean
>isNonBlank2 : (value: string) => value is never
>value : string
doThis2(value);
>doThis2(value) : void
>doThis2 : (value: never) => void
>value : never
} else {
doThat2(value);
>doThat2(value) : void
>doThat2 : (value: string) => void
>value : string
}
|