Изброяване като тип в TypeScript

Всяко изброяване създава свой собствен тип данни. Нека за пример за променлива, съхраняваща текущия сезон присвоим тип Season:

typescriptlet current: Season;

Запишем в нашата променлива номера на сезона:

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

Може да се укаже номера на сезона ръчно:

typescriptlet current: Season = 3;

А ако се опитаме да запишем данни от друг тип, например, низ, ще получим грешка:

typescriptlet current: Season = 'str'; // ще има грешка

За съжаление, диапазонът от стойности не се проследява и може да се запише номер, който липсва в нашето изброяване:

typescriptlet current: Season = 7; // няма да има грешка

При проверка чрез оператор typeof нашата променлива ще върне числов тип:

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

Обобщавайки, може да се каже, че такъв тип се проверява не много строго и от това стойността му е съмнителна.