//// [genericTypeWithNonGenericBaseMisMatch.ts] interface I { f: (a: { a: number }) => void } class X implements I { f(a: T): void { } } var x = new X<{ a: string }>(); var i: I = x; // Should not be allowed -- type of 'f' is incompatible with 'I' //// [genericTypeWithNonGenericBaseMisMatch.js] var X = (function () { function X() { } X.prototype.f = function (a) { }; return X; })(); var x = new X(); var i = x; // Should not be allowed -- type of 'f' is incompatible with 'I'