[英]Add items to array in typescript map
我有一個 JS Map 看起來像這樣let mappy = new Map<string, string[]>()
我想使用鍵將項目添加到數組中,我可以這樣做:
mappy.set(theKey, mappy.get(theKey).push('somevalue'));
這對我來說似乎有點矯枉過正。 如果我使用簡單的 object 我可以輕松做到
let mappy = {};
mappy[theKey] = [];
..然后mappy[theKey].push('somevalue')
但這有點否定了 TS 的類型化 object 想法
有什么方法可以在不先“獲取”它的情況下添加到 map 中的該數組中?
您可以從Map
object 獲取對數組的引用並將額外的值推送給它。 無需將其放回Map
中,它已經存在了。
mappy.get(theKey)!.push('somevalue');
!
在需要mappy.get(theKey)
之后,因為 TypeScript 抱怨mappy.get()
返回的值可以是undefined
。 感嘆號告訴它我們確定該值已定義。 它被稱為“確定分配斷言” ,已在 TypeScript 2.7 中引入。
上網查一下。
或者您也可以使用普通的 object 而不是Map
:
type MyMap = { [K: string]: string[] };
let mappy: MyMap = {};
mappy[theKey] = [];
mappy[theKey].push('somevalue');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.