// merged interfaces behave as if all extends clauses from each declaration are merged together class C { a: T; } class C2 { b: T; } class C3 { c: T; } class C4 { d: T; } interface A extends C, C3 { // error y: T; } interface A extends C, C4 { z: T; } class D implements A { a: string; b: string; c: string; d: string; y: boolean; z: boolean; }