[英]Typescript Map Relation with Array objects
根据MDN 文档
从这样的数组初始化 Map 是合法的:
let kvArray = [['key1', 'value1'], ['key2', 'value2']];
let myMap: Map<string, string> = new Map(kvArray);
尽管如此,我的 Visual Studio Code 编译器还是抱怨:
No overload matches this call.
Overload 1 of 3, '(iterable: Iterable<readonly [string, string]>): Map<string, string>', gave the following error.
Argument of type 'string[][]' is not assignable to parameter of type 'Iterable<readonly [string, string]>'.
The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types.
问题是您没有在kvArray
上放置类型,因此打字稿正在推断它。 它推断它是一个string[][]
,但这还不够具体。 Map 构造函数需要正好有两个字符串的元组,而不是具有任意数量字符串的数组。 您的 javascript 正在创建这些元组,但您需要明确类型:
let kvArray: [string, string][] = [['key1', 'value1'], ['key2', 'value2']];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.