Enumerointi tyyppinä TypeScriptissä
Jokainen enumerointi luo oman
tietotyyppinsä. Otetaan esimerkiksi
muuttuja, joka tallentaa nykyisen vuodenajan, ja annetaan sille
tyyppi Season:
let current: Season;
Tallennetaan muuttujaamme vuodenajan numero:
let current: Season = Season.Winter;
console.log(current); // 0
Vuodenajan numeron voi antaa manuaalisesti:
let current: Season = 3;
Mutta jos yrittää tallentaa eri tyyppistä dataa, esimerkiksi merkkijonon, tulee virhe:
let current: Season = 'str'; // tulee virhe
Valitettavasti arvoaluetta ei seurata eikä numeroiden, jotka eivät ole enumeroinnissamme, tallentaminen aiheuta virhettä:
let current: Season = 7; // ei virhettä
Kun tarkistetaan typeof
-operaattorilla, muuttujamme palauttaa numeerisen tyypin:
let current: Season = 3;
console.log(typeof current); // "number"
Yhteenvetona voidaan sanoa, että tällaista tyyppiä ei tarkisteta kovin tiukasti, mikä tekee sen arvon kyseenalaiseksi.