首页 > 解决方案 > 函数无法识别打字稿中对象数组的副本

问题描述

我有一个对象数组(来自一个类),它是我的组件的一个属性和一个将它作为参数的函数。

myFunc(MyClass[][]) {...}

在另一个函数中,我修改了这个数组数组。但有时我想扭转这些变化。我试图像这样复制它:

let temp = myArray.map(line => Object.assign([], line.map(obj => Object.assign({}, obj))));

当我登录控制台时,它是相同的。然后,如果我需要撤消更改,则将属性替换为副本。但是当 myFunc 被调用时,我得到了这个:

ERROR TypeError: "myFunc is not a function"

当我不使用副本时,该功能可以正常工作。为什么会这样?

标签: angulartypescript

解决方案


您只复制了参考。您需要将数组复制到新的引用。

const copyOfArray = [...originalObject];

另请参阅:如何正确克隆 JavaScript 对象?


推荐阅读