tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts(2,5): error TS2300: Duplicate identifier 'x'. tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts(6,5): error TS2300: Duplicate identifier 'x'. tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts(11,9): error TS2300: Duplicate identifier 'x'. tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts(15,9): error TS2300: Duplicate identifier 'x'. tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts(33,9): error TS2300: Duplicate identifier 'x'. tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts(39,9): error TS2300: Duplicate identifier 'x'. ==== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts (6 errors) ==== interface A { x: string; // error ~ !!! error TS2300: Duplicate identifier 'x'. } interface A { x: number; ~ !!! error TS2300: Duplicate identifier 'x'. } module M { interface A { x: T; ~ !!! error TS2300: Duplicate identifier 'x'. } interface A { x: number; // error ~ !!! error TS2300: Duplicate identifier 'x'. } } module M2 { interface A { x: T; } } module M2 { interface A { x: number; // ok, different declaration space than other M2 } } module M3 { export interface A { x: T; ~ !!! error TS2300: Duplicate identifier 'x'. } } module M3 { export interface A { x: number; // error ~ !!! error TS2300: Duplicate identifier 'x'. } }