//// [staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts] interface A { name(); } class B { public name() { } } class C { public static name() { } } var a: A = new B(); a = new C(); // error name is missing a = B; // error name is missing a = C; var b: B = new C(); // error name is missing b = B; // error name is missing b = C; b = a; var c: C = new B(); c = B; c = C; c = a; //// [staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js] var B = (function () { function B() { } B.prototype.name = function () { }; return B; })(); var C = (function () { function C() { } C.name = function () { }; return C; })(); var a = new B(); a = new C(); a = B; a = C; var b = new C(); // error name is missing b = B; b = C; b = a; var c = new B(); c = B; c = C; c = a;