传递给新Map的二维数组在打字稿中失败

Ren

无法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

一定的表现

如果您浏览日志,则会看到一条错误消息:

目标需要2个元素,但源可能更少。

问题是,它['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个项目。

还要注意,变量名不能以数字开头-可以以其他字母(可能是字母)开头。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章