tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(12,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. Types of property 'x' are incompatible. Type 'A' is not assignable to type 'Comparable'. Types of property 'compareTo' are incompatible. Type '(other: number) => number' is not assignable to type '(other: string) => number'. Types of parameters 'other' and 'other' are incompatible. Type 'number' is not assignable to type 'string'. tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(13,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. Types of property 'x' are incompatible. Type 'A' is not assignable to type 'Comparable'. tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(16,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. Types of property 'x' are incompatible. Type 'A' is not assignable to type 'Comparable'. tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(17,5): error TS2322: Type 'K' is not assignable to type 'I'. Types of property 'x' are incompatible. Type 'A' is not assignable to type 'Comparable'. ==== tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts (4 errors) ==== interface Comparable { compareTo(other: T): number; } interface I { x: Comparable; } interface K { x: A; } class A implements Comparable { compareTo(other: T) { return 1; } } var z = { x: new A() }; var a1: I = { x: new A() }; ~~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. !!! error TS2322: Types of property 'x' are incompatible. !!! error TS2322: Type 'A' is not assignable to type 'Comparable'. !!! error TS2322: Types of property 'compareTo' are incompatible. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. !!! error TS2322: Types of parameters 'other' and 'other' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. var a2: I = function (): { x: A } { ~~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. !!! error TS2322: Types of property 'x' are incompatible. !!! error TS2322: Type 'A' is not assignable to type 'Comparable'. var z = { x: new A() }; return z; } (); var a3: I = z; ~~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. !!! error TS2322: Types of property 'x' are incompatible. !!! error TS2322: Type 'A' is not assignable to type 'Comparable'. var a4: I = >z; ~~ !!! error TS2322: Type 'K' is not assignable to type 'I'. !!! error TS2322: Types of property 'x' are incompatible. !!! error TS2322: Type 'A' is not assignable to type 'Comparable'.