簡體   English   中英

與數組對象的打字稿映射關系

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM