//// [genericAssignmentCompatWithInterfaces1.ts] 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() }; var a2: I = function (): { x: A } { var z = { x: new A() }; return z; } (); var a3: I = z; var a4: I = >z; //// [genericAssignmentCompatWithInterfaces1.js] var A = (function () { function A() { } A.prototype.compareTo = function (other) { return 1; }; return A; })(); var z = { x: new A() }; var a1 = { x: new A() }; var a2 = function () { var z = { x: new A() }; return z; }(); var a3 = z; var a4 = z;