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