gpt4 book ai didi

javascript - 在 TypeScript 中克隆对象数组

转载 作者:行者123 更新时间:2023-12-05 00:34:12 25 4
gpt4 key购买 nike

我在我的界面中定义了一组对象,如下所示:

myArray: [{
id: number;
item: string;
checked: boolean;
}]
我正在尝试使用以下语句克隆数组:
let newArray = myArray.map(x => Object.assign({},x));
当我尝试将新数组分配给原始数组时,出现以下错误:
Type '{ id: number; item: string; checked: boolean; }[]' is not assignable to type
'[{ id: number; item: string; checked: boolean; }]'.
Target requires 1 element(s) but source may have fewer
看起来对象数组正在转换为数组对象。

最佳答案

您遇到的问题在于 TypeScript 中元组和列表类型之间的区别。考虑以下示例 Playground link :

type AsTuple = [number];

type AsArray = number[];

let myArrayA: AsArray = [];
let myArrayB: AsTuple = []; // This one errors
为什么第二个错误?这是因为 AsArray是一个数字数组,而 AsTuple是一个元组,其中元组中的第一个(也是唯一一个)项目是一个数字。空数组不符合 AsTuple 类型;它必须是一个单项数组。
在您的示例中,您有:
myArray: [{
id: number;
item: string;
checked: boolean;
}]
它定义了 myArray作为元组类型 - 它可以有一个项目,即一个对象。您可以通过将其设为数组类型来纠正它:
myArray: {
id: number;
item: string;
checked: boolean;
}[]
您可以在 this playground link 中查看示例.

关于javascript - 在 TypeScript 中克隆对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63996347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com