mergedInterfacesWithMultipleBases4.ts(4,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(8,5): error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(12,5): error TS2564: Property 'c' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(16,5): error TS2564: Property 'd' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(19,11): error TS2320: Interface 'A<T>' cannot simultaneously extend types 'C<string>' and 'C<number>'.
  Named property 'a' of types 'C<string>' and 'C<number>' are not identical.
mergedInterfacesWithMultipleBases4.ts(28,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(29,5): error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(30,5): error TS2564: Property 'c' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(31,5): error TS2564: Property 'd' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(32,5): error TS2564: Property 'y' has no initializer and is not definitely assigned in the constructor.
mergedInterfacesWithMultipleBases4.ts(33,5): error TS2564: Property 'z' has no initializer and is not definitely assigned in the constructor.


==== mergedInterfacesWithMultipleBases4.ts (11 errors) ====
    // merged interfaces behave as if all extends clauses from each declaration are merged together
    
    class C<T> {
        a: T;
        ~
!!! error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
    }
    
    class C2<T> {
        b: T;
        ~
!!! error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
    }
    
    class C3<T> {
        c: T;
        ~
!!! error TS2564: Property 'c' has no initializer and is not definitely assigned in the constructor.
    }
    
    class C4<T> {
        d: T;
        ~
!!! error TS2564: Property 'd' has no initializer and is not definitely assigned in the constructor.
    }
    
    interface A<T> extends C<string>, C3<string> { // error
              ~
!!! error TS2320: Interface 'A<T>' cannot simultaneously extend types 'C<string>' and 'C<number>'.
!!! error TS2320:   Named property 'a' of types 'C<string>' and 'C<number>' are not identical.
        y: T;
    }
    
    interface A<T> extends C<number>, C4<string> {
        z: T;
    }
    
    class D implements A<boolean> {
        a: string;
        ~
!!! error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
        b: string;
        ~
!!! error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
        c: string;
        ~
!!! error TS2564: Property 'c' has no initializer and is not definitely assigned in the constructor.
        d: string;
        ~
!!! error TS2564: Property 'd' has no initializer and is not definitely assigned in the constructor.
        y: boolean;
        ~
!!! error TS2564: Property 'y' has no initializer and is not definitely assigned in the constructor.
        z: boolean;
        ~
!!! error TS2564: Property 'z' has no initializer and is not definitely assigned in the constructor.
    }