interface A { x: T; } interface A { // error y: T; } module M { interface A { x: T; } interface A { // error y: T; } } module M2 { interface A { x: T; } } module M2 { interface A { // ok, different declaration space than other M2 y: T; } } module M3 { export interface A { x: T; } } module M3 { export interface A { // error y: T; } }