В TypeScript, если тип переменной задан через enum
, то при компиляции кода тип проверяется, и компилятор TypeScript не допустит присваивание значения, которое не соответствует значению в enum
.
enum
в TypeScript представляет собой набор именованных числовых констант. Обычно его используют для определения набора возможных значений для переменной или свойства. Например, следующая конструкция определяет enum
с именами дней недели:
enum DaysOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
Каждому имени enum
ставится в соответствие числовое значение. По умолчанию, начиная с 0 и продолжая последовательность по порядку.
console.log(DaysOfWeek.Monday); // 0 console.log(DaysOfWeek.Tuesday); // 1
Когда мы объявляем переменную с типом enum
, компилятор TypeScript гарантирует, что значение переменной будет соответствовать одному из значений из enum
. Если мы попытаемся присвоить переменной значение, которое не является значением enum
, компилятор выдаст ошибку.
let today: DaysOfWeek = DaysOfWeek.Monday; today = 5; // Ошибка компиляции: Type '5' is not assignable to type 'DaysOfWeek'
Компилятор TypeScript позволяет также явно указывать числовые значения для каждого элемента enum
. Это может быть полезно, если необходимо явно указать конкретные значения или иметь нестандартную последовательность чисел.
enum DaysOfWeek { Monday = 1, Tuesday = 5, Wednesday = 8 } console.log(DaysOfWeek.Monday); // 1 console.log(DaysOfWeek.Tuesday); // 5
Таким образом, компилятор TypeScript осуществляет проверку типов, включая enum
, и не допускает присваивание значений, которые не соответствуют определенным значениям в enum
. Это помогает предотвратить ошибки во время компиляции и обеспечивает более безопасное программирование.