Перечисление как тип в 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"

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



Чат с GPT Компилятор