Angular V2 打字稿深拷贝/带有Getters的克隆



如何复制/克隆打字稿类?父类包含一个嵌套的类,还包含嵌套类的集合。每种类型的类都包含一个getter。我想如果复制的类没有丢失getters,而嵌套的类和数组项目有新的参考。

我的问题是,JSON.parse(JSON.stringify( obj ));未复制getters。Object.assign(target, soure);复制了getters,但数组项目保留了原始参考。

这是类的结构

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>;  
}

使用follwing lodash clonedeep()方法

getter & setter深入对象的另一种方式
import * as cloneDeep from 'lodash/cloneDeep';
...
let foo = cloneDeep(bar);

希望这会有所帮助!

最新更新