1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
//// [typeParameterAsTypeArgument.ts]
// These are all errors because type parameters cannot reference other type parameters from the same list
function foo<T, U>(x: T, y: U) {
foo<U, U>(y, y);
return new C<U,T>();
}
class C<T, U> {
x: T;
}
interface I<T, U> {
x: C<U, T>;
}
//function foo<T, U extends T>(x: T, y: U) {
// foo<U, U>(y, y);
// return new C<U, T>();
//}
//class C<T extends U, U> {
// x: T;
//}
//interface I<T, U extends T> {
// x: C<U, T>;
//}
//// [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;
}());
//function foo<T, U extends T>(x: T, y: U) {
// foo<U, U>(y, y);
// return new C<U, T>();
//}
//class C<T extends U, U> {
// x: T;
//}
//interface I<T, U extends T> {
// x: C<U, T>;
//}
|