Ich habe die Frage mehr zum Stapelüberlauf dokumentiert (http://stackoverflow.com/questions/28150967/typescript-cloning-object).
Gibt es eine Möglichkeit, ein Objekt in Typoskript zu klonen? Derzeit verwende ich den folgenden Hack
var cloneObj = new this.constructor ();
Typoskript löst jedoch den folgenden Fehler aus: Fehler TS2351: 'new' kann nicht mit einem Ausdruck verwendet werden, dessen Typ keinen Aufruf oder keine Konstruktsignatur enthält.
Können Sie genau klären, welches Problem Sie mit Ihrer aktuellen Antwort haben?
Das Problem ist, dass der Compiler einen Fehler auslöst, wenn ich versuche, einen Konstruktor dynamisch aufzurufen.
var cloneObj = new this.constructor(); // error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
Die Art und Weise, wie ich den Compiler 1.3 glücklich machte, war
var cloneObj = new (<any> this.constructor());
Diese Methode funktioniert jedoch nicht mit 1.4.1.
Gibt es eine Möglichkeit, einen Konstruktor dynamisch aufzurufen?
Wenn Sie Ihren Code von SO verwenden, funktioniert jeder dieser Casts mit den neuesten Bits und sollte in jeder Version enthalten sein, da:
var cloneObj = new (<any>this.constructor());
var cloneObj = new (<any>this.constructor)();
var cloneObj = new (<any>this).constructor();
Hilfreichster Kommentar
Wenn Sie Ihren Code von SO verwenden, funktioniert jeder dieser Casts mit den neuesten Bits und sollte in jeder Version enthalten sein, da: