关于打字稿中的可索引类型(索引签名)

时间:2018-11-07 05:49:08

标签: javascript typescript

我想制作一个通用字典,例如c#字典。

但是javascript不支持方括号([])运算符重载。

所以我想到了一个把戏。那只是使用索引签名。

但是它有一个严重的问题。不能遍历c#之类的元素。 (for或foreach)

救救我!

ps。对不起英语。

1 个答案:

答案 0 :(得分:0)

您可以选择一个普通对象:

 const dict: { [key: string]: number } = {};

 dict["a"] = 1;
 dict["b"] = 2;

 for(let key in dict)
   console.log(key + ":" + dict[key]);

for(const [k, v] of Object.entries(dict))
  consope.log(k + ":" + v);

或者您使用地图:

  const dict = new Map<string, number>();

  dict.set("a", 1).set("b", 2);

  for(const [k, v] of dict.entries())
    console.log(k + ":" + v);