var x : IHash = {};
x['key1'] = 'value1';
x['key2'] = 'value2';
console.log(x['key1']);
console.log(x['key2']);
Jeśli chcesz później iterować w swoim słowniku, możesz użyć.
Object.keys(x).forEach((key) => {console.log(x[key])});
Object.keys zwraca wszystkie właściwości obiektu, więc działa dobrze przy zwracaniu wszystkich wartości z obiektów stylizowanych na słownik.
W swoim pytaniu wspomniałeś również o hashmie, powyższa definicja dotyczy interfejsu w stylu słownikowym. Dlatego klucze będą unikalne, ale wartości nie.
Możesz go użyć jak skrótu, po prostu przypisując tę samą wartość do klucza i jego wartości.
jeśli chcesz, aby klucze były unikalne i miały potencjalnie różne wartości, musisz po prostu sprawdzić, czy klucz istnieje w obiekcie przed dodaniem do niego.
var valueToAdd = 'one';
if(!x[valueToAdd])
x[valueToAdd] = valueToAdd;
lub możesz zbudować własną klasę, która będzie działała jak rodzaj skrótu.
Class HashSet{
private var keys: IHash = {};
private var values: string[] = [];
public Add(key: string){
if(!keys[key]){
values.push(key);
keys[key] = key;
}
}
public GetValues(){
return values.slice();
}
}