==== tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts (2 errors) ==== interface I { f: (a: { a: number }) => void } class X implements I { ~ !!! Class 'X' incorrectly implements interface 'I': !!! Types of property 'f' are incompatible: !!! Type '(a: T) => void' is not assignable to type '(a: { a: number; }) => void': !!! Types of parameters 'a' and 'a' are incompatible: !!! Type 'T' is not assignable to type '{ a: number; }': !!! Types of property 'a' are incompatible: !!! Type 'string' is not assignable to type 'number'. 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' ~ !!! Type 'X<{ a: string; }>' is not assignable to type 'I': !!! Types of property 'f' are incompatible: !!! Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void': !!! Types of parameters 'a' and 'a' are incompatible: !!! Type '{ a: string; }' is not assignable to type '{ a: number; }': !!! Types of property 'a' are incompatible: !!! Type 'string' is not assignable to type 'number'.