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
|
=== tests/cases/compiler/unionOfEnumInference.ts ===
// Repro from #42932
enum Enum { A, B, C }
>Enum : Enum
>A : Enum.A
>B : Enum.B
>C : Enum.C
interface Interface<T extends Enum> {
type: T;
>type : T
}
function foo<T extends Enum>(x: Interface<T>) { }
>foo : <T extends Enum>(x: Interface<T>) => void
>x : Interface<T>
function bar(x: Interface<Enum.A | Enum.B> | Interface<Enum.C>) {
>bar : (x: Interface<Enum.A | Enum.B> | Interface<Enum.C>) => void
>x : Interface<Enum.A | Enum.B> | Interface<Enum.C>
>Enum : any
>Enum : any
>Enum : any
foo(x);
>foo(x) : void
>foo : <T extends Enum>(x: Interface<T>) => void
>x : Interface<Enum.A | Enum.B> | Interface<Enum.C>
}
|