interface A { x: string; // error } interface A { x: number; } module M { interface A { x: T; } interface A { x: number; // error } } 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; } } module M3 { export interface A { x: number; // error } }