如何复制/克隆打字稿类?父类包含一个嵌套类和一个嵌套类的集合。每种类型的类都包含一个吸气剂。我想如果复制的类没有丢失吸气剂,并且嵌套的类和数组项具有新的引用。
我的问题是,JSON.parse(JSON.stringify( obj ));
没有复制吸气剂。和Object.assign(target, soure);
复制的吸气剂,但数组项保留原始引用。
这是类的结构
export interface IClassA {
code: number;
description: string;
}
export class ClassA implements IClassA {
code: number;
description: string;
get descrAndCode() {
return 'Getter A ' + this.description + ':' + this.code;
}
}
export interface IClassB {
name: string;
code: number;
classList: Array<ClassA>;
}
export class ClassB implements IClassB {
name: string;
code: number;
get codeAndName(): string {
return 'Getter B' + this.code + ':' + this.name;
}
nested: ClassA;
classList: Array<ClassA>;
}
getter & setter
使用以下lodashclonedeep()
方法深深复制对象的另一种方法
import * as cloneDeep from 'lodash/cloneDeep';
...
let foo = cloneDeep(bar);
希望这会有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句