簡體   English   中英

將項目添加到 typescript map 中的數組

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

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