[英]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.