Typ wyliczeniowy w TypeScript

Każde wyliczenie tworzy swój własny typ danych. Weźmy dla przykładu zmienną przechowującą aktualną porę roku i przypiszmy jej typ Season:

typescriptlet current: Season;

Zapiszmy w naszej zmiennej numer pory roku:

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

Można podać numer pory roku ręcznie:

typescriptlet current: Season = 3;

A jeśli spróbujemy zapisać dane innego typu, na przykład ciąg znaków, to pojawi się błąd:

typescriptlet current: Season = 'str'; // pojawi się błąd

Niestety, zakres wartości nie jest śledzony i można zapisać numer, którego nie ma w naszym wyliczeniu:

typescriptlet current: Season = 7; // błędu nie będzie

Podczas sprawdzania za pomocą operatora typeof nasza zmienna zwróci typ liczbowy:

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

Podsumowując, można powiedzieć, że taki typ nie jest sprawdzany zbyt rygorystycznie, przez co jego wartość jest wątpliwa.