Ich habe eine Superklasse, die das Elternelement (Entity
) für viele Unterklassen (Customer
, Product
, ProductCategory
...) ist
Ich möchte in Typescript dynamisch ein Objekt klonen, das verschiedene Teilobjekte enthält.
Zum Beispiel: ein Customer
, der verschiedene Product
enthält, die eine ProductCategory
haben
var cust:Customer = new Customer();
cust.name = "someName";
cust.products.push(new Product(someId1));
cust.products.push(new Product(someId2));
Um den gesamten Objektbaum zu klonen, habe ich eine Funktion in Entity
erstellt
public clone():any {
var cloneObj = new this.constructor();
for (var attribut in this) {
if(typeof this[attribut] === "object"){
cloneObj[attribut] = this.clone();
} else {
cloneObj[attribut] = this[attribut];
}
}
return cloneObj;
}
Der new
Fehler tritt auf, wenn er zu Javascript transpiliert wird: Fehler TS2351: Kann 'new' nicht mit einem Ausdruck verwenden, dessen Typ über eine Aufruf- oder Konstruktions-Signatur verfügt.
Obwohl das Skript funktioniert, möchte ich den transpilierten Fehler loswerden