gpt4 book ai didi

javascript - TypeScript - 如何使用数组映射到 ES 6 映射?

转载 作者:行者123 更新时间:2023-11-28 11:20:35 36 4
gpt4 key购买 nike

假设我有一个键值对象数组:

const data = [
{key: "object1", value: "data1"},
{key: "object2", value: "data2"},
{key: "object3", value: "data3"},
]

const mappedData = data.map(x => [x.key, x.value]);

const ES6Map = new Map<string, string>(mappedData.values())

如何将其转换为 ES 6 map ?它可以在 JavaScript 中运行,但 TypeScript 会报错。这里我得到了错误Argument of type 'IterableIterator<string[]>' is not assignable to parameter of type 'ReadonlyArray<[string, string]>'.
Property 'length' is missing in type 'IterableIterator<string[]>'.

最佳答案

你需要做type assertion并告诉 typescript 你的 mappedData类型为Array<[string,string]>而不是string[][]这是 Array<[any,any]> 的子类型根据Map的需要构造函数。

const mappedData = data.map(x => [x.key, x.value] as [string, string]);

而不是

const mappedData = data.map(x => [x.key, x.value]);

还有

删除values()正如评论中指出的那样打电话。

关于javascript - TypeScript - 如何使用数组映射到 ES 6 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53492591/

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