=== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases.ts === // merged interfaces behave as if all extends clauses from each declaration are merged together // no errors expected class C { >C : C a: number; >a : number } class C2 { >C2 : C2 b: number; >b : number } interface A extends C { >A : A >C : C y: string; >y : string } interface A extends C2 { >A : A >C2 : C2 z: string; >z : string } class D implements A { >D : D >A : A a: number; >a : number b: number; >b : number y: string; >y : string z: string; >z : string } var a: A; >a : A >A : A var r = a.a; >r : number >a.a : number >a : A >a : number // generic interfaces in a module module M { >M : typeof M class C { >C : C >T : T a: T; >a : T >T : T } class C2 { >C2 : C2 >T : T b: T; >b : T >T : T } interface A extends C { >A : A >T : T >C : C >T : T y: T; >y : T >T : T } interface A extends C2 { >A : A >T : T >C2 : C2 z: T; >z : T >T : T } class D implements A { >D : D >A : A a: boolean; >a : boolean b: string; >b : string y: boolean; >y : boolean z: boolean; >z : boolean } }