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
|
=== tests/cases/compiler/genericNewInterface.ts ===
function createInstance<T>(ctor: new (s: string) => T): T {
>createInstance : Symbol(createInstance, Decl(genericNewInterface.ts, 0, 0))
>T : Symbol(T, Decl(genericNewInterface.ts, 0, 24))
>ctor : Symbol(ctor, Decl(genericNewInterface.ts, 0, 27))
>s : Symbol(s, Decl(genericNewInterface.ts, 0, 38))
>T : Symbol(T, Decl(genericNewInterface.ts, 0, 24))
>T : Symbol(T, Decl(genericNewInterface.ts, 0, 24))
return new ctor(42); //should be an error
>ctor : Symbol(ctor, Decl(genericNewInterface.ts, 0, 27))
}
interface INewable<T> {
>INewable : Symbol(INewable, Decl(genericNewInterface.ts, 2, 1))
>T : Symbol(T, Decl(genericNewInterface.ts, 4, 19))
new (param: string): T;
>param : Symbol(param, Decl(genericNewInterface.ts, 5, 9))
>T : Symbol(T, Decl(genericNewInterface.ts, 4, 19))
}
function createInstance2<T>(ctor: INewable<T>): T {
>createInstance2 : Symbol(createInstance2, Decl(genericNewInterface.ts, 6, 1))
>T : Symbol(T, Decl(genericNewInterface.ts, 8, 25))
>ctor : Symbol(ctor, Decl(genericNewInterface.ts, 8, 28))
>INewable : Symbol(INewable, Decl(genericNewInterface.ts, 2, 1))
>T : Symbol(T, Decl(genericNewInterface.ts, 8, 25))
>T : Symbol(T, Decl(genericNewInterface.ts, 8, 25))
return new ctor(1024); //should be an error
>ctor : Symbol(ctor, Decl(genericNewInterface.ts, 8, 28))
}
|