У мене є клас супер , який є батьківським ( Entity) для багатьох підкласу ( Customer, Product, ProductCategory...)
Я дивлюся, щоб динамічно клонувати об’єкт, який містить різні під об’єкти в Typescript.
Наприклад: a Customerмає різні, Productхто має aProductCategory
var cust:Customer = new Customer ();
cust.name = "someName";
cust.products.push(new Product(someId1));
cust.products.push(new Product(someId2));
Для клонування всього дерева об’єкта я створив функцію в Entity
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;
}
Під newчас трансляції в javascript виникає така помилка:error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
Хоча сценарій працює, я хотів би позбутися від перекладеної помилки