创建通用类以使用打字稿保存键值数组(字典)

时间:2020-10-25 14:48:48

标签: angular typescript angular7 typescript-generics

我想添加在我的应用程序中使用的Dictionary类。 我创建了一个类,并向其中添加了一个keyValuePair数组,以保存我的列表

export class KeyValuePair<TKey, TVal>{
key:TKey;
value:TVal;

constructor(key:TKey, val:TVal){
    this.key = key;
    this.value = val;
}

export class Dictionary<TKey, TVal>{
    array: Array<KeyValuePair<TKey, TVal>>
}

let myClassInstance:Dictionary<number, string> = ...;

问题:

  1. 我希望能够使用forEach或在循环中对其进行迭代,因为让myClassInstance的x怎么做? (myClassInstance.forEach(...);)
  2. 我可以使用类实例来获取我的数组而不调用className.arrayName吗?(myClassInstance.find(...);)
  3. 我可以使用类实例作为获取值的索引吗?(myClassInstance [1])
  • 是否有更好的结构?我想听听和学习... 谢谢!

1 个答案:

答案 0 :(得分:1)

看看Map,它们是词典。

您可以像这样使用它们:Playground

您可以迭代它们的值,键或条目,然后将其键入。您可以使用get找到一些东西。您可以将它们转换为数组[... myMap.values()],请注意:它们将按键插入顺序进行排序。 (您可以改用entry(),然后根据需要将结果映射为按键排序)