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

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

试图这样:

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

打字稿说:

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

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

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

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

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

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

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

猜你在找的JavaScript相关文章