//// [mismatchedGenericArguments1.ts] interface IFoo { foo(x: T): T; } class C implements IFoo { foo(x: string): number { return null; } } class C2 implements IFoo { foo(x: string): number { return null; } } //// [mismatchedGenericArguments1.js] var C = (function () { function C() { } C.prototype.foo = function (x) { return null; }; return C; })(); var C2 = (function () { function C2() { } C2.prototype.foo = function (x) { return null; }; return C2; })();