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
|
//// [typeParameterIndirectlyConstrainedToItself.ts]
class C<U extends T, T extends U> { }
class C2<T extends U, U extends V, V extends T> { }
interface I<U extends T, T extends U> { }
interface I2<T extends U, U extends V, V extends T> { }
function f<U extends T, T extends U>() { }
function f2<T extends U, U extends V, V extends T>() { }
var a: {
<U extends T, T extends U>(): void;
<T extends U, U extends V, V extends T>(): void;
}
var b = <U extends T, T extends U>() => { }
var b2 = <T extends U, U extends V, V extends T>() => { }
class D<U extends T, T extends V, V extends T> { }
// Repro from #25740
type Foo<T> = [T] extends [number] ? {} : {};
function foo<S extends Foo<S>>() {}
//// [typeParameterIndirectlyConstrainedToItself.js]
var C = /** @class */ (function () {
function C() {
}
return C;
}());
var C2 = /** @class */ (function () {
function C2() {
}
return C2;
}());
function f() { }
function f2() { }
var a;
var b = function () { };
var b2 = function () { };
var D = /** @class */ (function () {
function D() {
}
return D;
}());
function foo() { }
|