//// [typeParameterAsTypeArgument.ts] // These are all errors because type parameters cannot reference other type parameters from the same list function foo(x: T, y: U) { foo(y, y); return new C(); } class C { x: T; } interface I { x: C; } //function foo(x: T, y: U) { // foo(y, y); // return new C(); //} //class C { // x: T; //} //interface I { // x: C; //} //// [typeParameterAsTypeArgument.js] // These are all errors because type parameters cannot reference other type parameters from the same list function foo(x, y) { foo(y, y); return new C(); } var C = (function () { function C() { } return C; })();