如何在 TypeScript 中克隆类实例?

OPV*_*OPV 0 typescript typescript2.0

我有类的实例:

let i = new I();
Run Code Online (Sandbox Code Playgroud)

在添加到数组之前,我需要克隆它,创建一个副本:

arr.push(i);
Run Code Online (Sandbox Code Playgroud)

我努力了:

Object.assign({}, i)
Run Code Online (Sandbox Code Playgroud)

Bel*_*ash 5

您可以尝试以下代码,它应该可以工作。

 let i = new I();
 //const clone = Object.assign({}, i);
 //arr.push(clone);
 //const clone = JSON.parse(JSON.stringify(i));
 //arr.push(clone);
 const clone = Object.create(
      Object.getPrototypeOf(i), 
      Object.getOwnPropertyDescriptors(i) 
  );
 arr.push(clone);
Run Code Online (Sandbox Code Playgroud)