//// [recursiveTypeParameterReferenceError1.ts] class X { } interface Foo { z: Foo>; // error } var f: Foo; var r = f.z; class C2 { x: T; } interface Foo2 { ofC4: C2<{ x: T }> // ok } var f2: Foo2; var r2 = f2.ofC4; //// [recursiveTypeParameterReferenceError1.js] var X = (function () { function X() { } return X; })(); var f; var r = f.z; var C2 = (function () { function C2() { } return C2; })(); var f2; var r2 = f2.ofC4;