20 lines
No EOL
408 B
TypeScript
20 lines
No EOL
408 B
TypeScript
class A { a; };
|
|
class B { b; };
|
|
interface I {
|
|
f<T extends A>(): T;
|
|
} // { f: () => { a; } }
|
|
|
|
// OK
|
|
class X implements I {
|
|
f<T extends B>(): T { return undefined; }
|
|
} // { f: () => { b; } }
|
|
|
|
// OK
|
|
class Y implements I {
|
|
f<T extends A>(): T { return undefined; }
|
|
} // { f: () => { a; } }
|
|
|
|
// OK
|
|
class Z implements I {
|
|
f<T>(): T { return undefined; }
|
|
} // { f: <T>() => T }
|