mutuallyRecursiveInference.ts(2,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
mutuallyRecursiveInference.ts(9,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
mutuallyRecursiveInference.ts(10,5): error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
mutuallyRecursiveInference.ts(12,9): error TS5114: Instantiations of type 'T' appear infinitely circular.


==== mutuallyRecursiveInference.ts (4 errors) ====
    class T<A> {
        a: A;
        ~
!!! error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
        b: any
    }
    class L<RT extends { a: 'a' | 'b', b: any }> extends T<RT[RT['a']]> {
        m() { this.a }
    }
    class X extends L<X> {
        a: 'a' | 'b'
        ~
!!! error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
        b: number
        ~
!!! error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
        m2() {
            this.a
            ~~~~~~
!!! error TS5114: Instantiations of type 'T' appear infinitely circular.
        }
    }
    