javascript – 深入克隆Typescript中的实体实例?

前端之家收集整理的这篇文章主要介绍了javascript – 深入克隆Typescript中的实体实例?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

试图这样:

  1. /**
  2. * Deep clones an array of instances of type T and returns a new array.
  3. * @param array The array to deep clone
  4. * @return A new deep clone of the array argument
  5. *
  6. * @example

打字稿说:

[ts] Spread types may only be created from object types.

不应该T扩展Object来处理这个吗?

最佳答案
如果使用spread运算符复制对象,则新对象将不是类的实例,而是不具有类型的文字对象,因此它不会是现有对象的真实克隆.

如果要克隆的对象是由您(而不是外部库)定义的,则可以执行以下操作:

  1. export function deepClone(array: any[]): any[] {
  2. return array.map((e:any) => (new e.constructor(e)));
  3. }

然后在你的课程中要克隆:

  1. constructor(obj: any) {
  2. Object.assign(this,obj);
  3. }

猜你在找的JavaScript相关文章