# Перечисление как тип в TypeScript

Каждое перечисление создает свой собственный тип данных. Давайте для примера для переменной, хранящей текущий сезон присвоим тип `Season`:

`let current: Season;`

Запишем в нашу переменную номер сезона:

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

Можно указать номер сезона вручную:

`let current: Season = 3;`

А вот если попытаться записать данные другого типа, например, строку, то будет ошибка:

`let current: Season = 'str'; // будет ошибка`

К сожалению, диапазон значений не отслеживается и можно записать номер, отсутствующий в нашем перечислении:

`let current: Season = 7; // ошибки не будет`

При проверке через оператор `typeof` наша переменная отдаст числовой тип:

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

Подведя итог можно сказать, что такой тип проверяется не сильно строго и от этого его ценность сомнительна.

← →
↑