Mam funkcję, która tworzy instancję obiektu z danym konstruktorem, przekazując dowolne argumenty.TypeScript: Nie można użyć "new" z wyrażeniem, którego typ nie ma wywołania lub konstruktu podpisu
function instantiate(ctor:Function):any {
switch (arguments.length) {
case 1:
return new ctor();
case 2:
return new ctor(arguments[1]);
case 3:
return new ctor(arguments[1], arguments[2]);
...
default:
throw new Error('"instantiate" called with too many arguments.');
}
}
Jest on stosowany tak:
export class Thing {
constructor() { ... }
}
var thing = instantiate(Thing);
To działa, ale kompilator narzeka każdej instancji new ctor
mówiąc Cannot use 'new' with an expression whose type lacks a call or construct signature.
. Jaki typ powinien mieć ctor
?
Nigdy nie odkryłbym tej magicznej składni na własną rękę! – alekop
również ja. Czy możesz dać wskazówkę, gdzie ktoś może znaleźć jakieś dokumenty na temat. –