Dettagli
Sono degli object javascript
Definiamo quello che si chiama un literal ossia una stringa che può assumere valori ben definiti come in questo caso:
Il dizionario va creato indicando specificando innanzitutto il tipo in questa maniera:
Letteralmente sta a significare che il dizionario (FoodDict
) sarà un oggetto ({ ... }
) che possiede una chiave (key
) per ogni valore all’interno di Food ([key in Food]
) dove il valore assegnato ad ogni chiave sarà identico alla chiave stessa ([key in Food]: key
).
Il nostro IDE ci obbligherà ora a completare l’oggetto esattamente in questa maniera:
Così facendo avremo un oggetto javascript iterabile che rappresenta tutti i valori ammissibili di Food.
Utilizzare un Dict
Accedere ad un valore
L’utilizzo più frequente e il più semplice. è un normalissimo accesso ad una proprietà di un oggetto. Si è addirittura aiutati dall’ IDE stesso che ci indica il contenuto del dizionario.
Ottenere l’elenco dei valori
Il primo metodo è preferito in quanto viene meglio gestito da typescript e dal nostro IDE
Il secondo metodo è tecnicamente equivalente e da lo stesso risultato perché le chiavi sono uguali ai valori, ma typescript non è molto d’accordo con noi. Meglio evitarlo, ma è il seguente
Verificare se un valore appartiene al dizionario
Facciamo uso di Type Predicates
è possibile definire una funzione che ci aiuta a capire se una variabile di tipo sconosciuto rientra all’interno dei valori consentiti dal dizionario.
Nel nostro esempio equivale a dire se una stringa è uno dei valori di Food
Questa funzione non ci ritorna solo un boolean, ma fa molto di più! Infatti nel caso ritornasse true, da quel momento in poi il nostro IDE tratta il valore come Food.