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
|
=== tests/cases/compiler/mutuallyRecursiveInference.ts ===
class T<A> {
>T : T<A>
a: A;
>a : A
b: any
>b : any
}
class L<RT extends { a: 'a' | 'b', b: any }> extends T<RT[RT['a']]> {
>L : L<RT>
>a : "a" | "b"
>b : any
>T : T<RT[RT["a"]]>
m() { this.a }
>m : () => void
>this.a : RT[RT["a"]]
>this : this
>a : RT[RT["a"]]
}
class X extends L<X> {
>X : X
>L : L<X>
a: 'a' | 'b'
>a : "a" | "b"
b: number
>b : number
m2() {
>m2 : () => void
this.a
>this.a : "a" | "b"
>this : this
>a : "a" | "b"
}
}
|