Предоставлено Конрад Рудольф ответ
Dictionary
- это «правильное» имя интерфейса (= ADT ), то есть ассоциативный контейнер, который отображает (обычно уникальные) ключи (не обязательно уникальные) значения.
Подводя итог: словарь - это ADT, который сопоставляет ключи со значениями. Существует несколько возможных реализаций этого ADT, одной из которых является хэш-таблица . Hash
является неправильным, но в контексте он эквивалентен словарю, который реализован в виде хеш-таблицы.
Решение 1
Прямо вперед вы можете использовать Карта тип в качестве рекомендации
//Using Map
let map = new Map<string, string>();
map.set("PO1", "closed");
map.set("PO2", "pending_approval");
map.set("PO3", "open");
map.set("PO4", "Draft");
map.set("PO5", "Cancelled");
map.set("PO6", "Rejected");
map.set("PO7", "Saved");
//get item
console.log(map.get('PO1'));
console.log(map.get('PO5'));
//has item
console.log(map.has('PO1'));
console.log(map.has('PO5'));
//delete item
console.log(map.delete('PO1'));
console.log(map.delete('PO5'));
Решение 2
Но если вам нужны пользовательские дополнительные методы, вы также можете создать реализацию Dictionary в машинописи, как показано ниже
//Using Dictionary
let dict = new Dictionary();
dict.set("PO1", "closed");
dict.set("PO2", "pending_approval");
dict.set("PO3", "open");
dict.set("PO4", "Draft");
dict.set("PO5", "Cancelled");
dict.set("PO6", "Rejected");
dict.set("PO7", "Saved");
//get item
console.log(map.get('PO1'));
console.log(map.get('PO5'));
//has item
console.log(map.has('PO1'));
console.log(map.has('PO5'));
//delete item
console.log(map.delete('PO1'));
console.log(map.delete('PO5'));
dictionary.ts
export class Dictionary {
items = {};
constructor() {
this.items = {};
}
public has(key) {
return key in this.items;
}
public set(key,value) {
this.items[key] = value;
}
public get(key) {
return this.items[key];
}
public delete(key) {
if( this.has(key) ){
delete this.items[key]
return true;
}
return false;
}
}
Рабочая демоверсия