Enumerácia ako typ v TypeScript

Každá enumerácia vytvára svoj vlastný typ dát. Pre príklad pre premennej, ktorá ukladá aktuálne ročné obdobie, priraďme typ Season:

typescriptlet current: Season;

Zapíšme do našej premennej číslo ročného obdobia:

typescriptlet current: Season = Season.Winter;
console.log(current); // 0

Číslo ročného obdobia je možné zadať manuálne:

typescriptlet current: Season = 3;

Ale ak sa pokúsite zapísať dáta iného typu, napríklad reťazec, nastane chyba:

typescriptlet current: Season = 'str'; // bude chyba

Bohužiaľ, rozsah hodnôt nie je sledovaný a je možné zadať číslo, ktoré sa v našej enumerácii nenachádza:

typescriptlet current: Season = 7; // chyba nenastane

Pri kontrole pomocou operátora typeof naša premenná vráti číselný typ:

typescriptlet current: Season = 3;
console.log(typeof current); // "number"

Ak to zhrnieme, možno povedať, že takýto typ nie je kontrolovaný príliš prísne, a preto je jeho hodnota pochybná.