Výčet jako typ v TypeScriptu

Každý výčet vytváří svůj vlastní datový typ. Pro příklad přiřaďme proměnné, která ukládá aktuální roční období, typ Season:

typescriptlet current: Season;

Zapišme do naší proměnné číslo ročního období:

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

Číslo ročního období lze zadat ručně:

typescriptlet current: Season = 3;

Pokud bychom se však pokusili zapsat data jiného typu, například řetězec, dojde k chybě:

typescriptlet current: Season = 'str'; // dojde k chybě

Bohužel se nesleduje rozsah hodnot a je možné zapsat číslo, které se v našem výčtu nenachází:

typescriptlet current: Season = 7; // k chybě nedojde

Při kontrole pomocí operátoru typeof vrátí naše proměnná číselný typ:

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

Shrnutím lze říci, že tento typ není kontrolován příliš přísně, a proto je jeho hodnota sporná.