如何在打字稿中将json对象转换为ReadOnlyMap <string,foo =“”>

时间:2019-05-21 09:19:05

标签: typescript

我正在寻找一种快速(并且可能是优雅的)方式,根据表示为对象的json数据构建ReadOnlyMap(键为strings,而值恰好适合类型(我们称之为Foo)。

因此,以下方法有效,但对我来说似乎过于冗长和尴尬:

      const jsonData = { 'key1' : {...}, 'key2': {...} };
      const mutableMap = new Map<String, Foo>();
      for(const k in jsonData) {
        mutableMap[k] = jsonData[k];
      }
      const immutableMap: ReadOnlyMap<String, Foo> = mutableMap;

这可能接近一线,但令人惊讶地很难找到。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

const immutableMap: ReadonlyMap<string, string> = new Map(
  Object.keys(jsonData).map(k => [k, jsonData[k]])
);