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
|
=== tests/cases/compiler/typePredicatesInUnion.ts ===
interface A {
pred(x: {}): x is boolean;
>pred : (x: {}) => x is boolean
>x : {}
}
interface B {
pred(x: {}): x is string;
>pred : (x: {}) => x is string
>x : {}
}
type Or = A | B;
>Or : Or
function f(o: Or, x: {}) {
>f : (o: Or, x: {}) => void
>o : Or
>x : {}
if (o.pred(x)) {
>o.pred(x) : boolean
>o.pred : ((x: {}) => x is boolean) | ((x: {}) => x is string)
>o : Or
>pred : ((x: {}) => x is boolean) | ((x: {}) => x is string)
>x : {}
x;
>x : string | boolean
}
}
|