gpt4 book ai didi

javascript - 传递给新 map 的二维数组在 typescript 中失败

转载 作者:行者123 更新时间:2023-12-03 14:06:09 26 4
gpt4 key购买 nike

无法将二维数组传递给 new Map在 typescript 中:

 const myArray: string[][] = [['DE', 'Germany'], ['AU', 'Austria']];
const myMap = new Map(myArray);
对我来说失败了 TS2769: No overload matches this call.我在这里做错了吗?
TS 版本 3.9.9

最佳答案

如果您翻阅日志,您将看到一条错误消息

Target requires 2 element(s) but source may have fewer.


问题是 ['DE', 'Germany']自动将类型扩展为 string[] - 一个字符串数组,可能有两个元素,或一个,或零个 - 但 Map 构造函数要求此类条目数组至少有 2 个元素。数组中的项目数为 2 的类型信息丢失。
我会将数组声明与 new Map 放在同一行。 :
const myMap = new Map([['DE', 'Germany'], ['AU', 'Austria']]);
另一种选择是
const arr: [string, string][] = [['DE', 'Germany'], ['AU', 'Austria']];
表明该数组实际上确实有 2 个项目。
另请注意,变量名称不能以数字开头 - 以其他名称开头,可能是字母。

关于javascript - 传递给新 map 的二维数组在 typescript 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66371388/

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