无法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] 删除。
我来说两句