Angular v2+ typescript deep copy/clone with getters

Angular v2+ typescript deep copy/clone with getters

如何copy/clone打字稿class?父 class 包含嵌套 class 以及嵌套 class 的集合。每种 class 都包含一个 getter。 我想如果复制的 class 没有丢失 getters,并且嵌套的 class 和数组项有一个新的引用。

我的问题是,JSON.parse(JSON.stringify( obj )); 没有复制 getter。 Object.assign(target, soure); 复制了 getter,但数组项保留了原始引用。

这是classes

的结构
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>;  
}

另一种方法是使用下面的 lodash clonedeep() 方法

使用 getter & setter 深度复制对象
import * as cloneDeep from 'lodash/cloneDeep';
...
let foo = cloneDeep(bar);

希望这对您有所帮助!