Recientemente actualicé la versión angular de 12 a 13. Tengo una clase con un método de clonación. La implementación de la clase es algo como esto:
export class MyClass { ... public clone(): MyClass { const newObject: MyClass = Util.deepClone(this); newObject.updateProperty(); return newObject; } ... } El método deepClone en la clase Util tiene la siguiente implementación:
/** * Returns a deep copy of the object */ public static deepClone(oldObj: any) { let newObj = oldObj; if (oldObj && typeof oldObj === 'object') { if (oldObj instanceof Date) { return new Date(oldObj.getTime()); } newObj = Object.prototype.toString.call(oldObj) === '[object Array]' ? [] : {}; for (const i in oldObj) { newObj[i] = this.deepClone(oldObj[i]); } } return newObj; } Mi problema es: este fragmento de código funciona en la versión 12, pero no en la versión 13. La función updateProperty() no está definida en la versión 13, pero está bien en la versión 12.
Como no pude encontrar a nadie con problemas similares ni preguntas similares, me gustaría que me ayudaran a encontrar: