Typescript Enum - упорядоченное перечисление значений

TypeScript enum - это именованный набор константных значений, которые могут быть использованы в коде вместо литералов. Он позволяет создавать явную связь между значениями и их смыслом, добавляет читабельность и поддерживаемость кода.

Для создания enum в TypeScript используется ключевое слово `enum`. Предположим, мы хотим создать enum, который будет содержать дни недели:


enum DayOfWeek {
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

Значения по умолчанию начинаются с 0 и инкрементируются на 1 для каждого последующего элемента. Каждому элементу можно явно присвоить значение, например:


enum DayOfWeek {
  Monday = 1,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

Теперь, если мы хотим использовать значение из enum, мы можем обратиться к нему по имени:


const day: DayOfWeek = DayOfWeek.Monday;
console.log(day); // 1

Enum также может быть использован в качестве типа, например, в функциях:


function isWeekend(day: DayOfWeek) {
  return day === DayOfWeek.Saturday || day === DayOfWeek.Sunday;
}
console.log(isWeekend(DayOfWeek.Saturday)); // true
console.log(isWeekend(DayOfWeek.Monday)); // false

В TypeScript enum можно использовать через ключевые слова `const` и `as const`, для того, чтобы enum стал неизменяемым:


const enum DayOfWeek {
  Monday = 1,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}
function printDay(day: DayOfWeek) {
  console.log(day);
}
printDay(DayOfWeek.Tuesday); // 2

Таким образом, TypeScript enum предоставляет удобный способ определения константных значений с читаемыми именами, обеспечивает типы и проверки во время компиляции, улучшает читаемость кода и повышает его поддерживаемость.

Похожие вопросы на: "typescript enum "

Python Map: Master Geographic Data Visualization with Python
Gitignore: что это такое и как использовать для игнорирования файлов
Что такое localhost и как его использовать для разработки и тестирования веб-сайтов?
Visited: Your Ultimate Travel Guide
Atom.io - The Ultimate Code Editor for Developers
Создание стильной кнопки с помощью HTML и CSS
NSSM: управление службами Windows профессионально и эффективно
Netty - фреймворк для разработки сетевых приложений на Java
Abstraction: Unlocking the Power of Your Imagination
HTML Python: использование Python в веб-разработке