//// [generics3.ts] class C { private x: T; } interface X { f(): string; } interface Y { f(): string; } var a: C; var b: C; a = b; // Ok - should be identical //// [generics3.js] var C = (function () { function C() { } return C; })(); var a; var b; a = b; //// [generics3.d.ts] declare class C { private x; } interface X { f(): string; } interface Y { f(): string; } declare var a: C; declare var b: C;