Основы Typescript
2026-02-26 16:35 Diff

В этом уроке мы познакомимся с перечислением. Такая конструкция языка позволяет создать набор имен, а затем обращаться к ним.

Использование перечислений

Перечисления используют вместо строк для постоянных значений:

Самый распространенный пример использования перечислений — хранение разных статусов. Но есть и другие случаи. Например, с их помощью легко и удобно хранить и обращаться к различным справочным данным:

  • Направления движения
  • Стороны света
  • Дни недели
  • Месяцы

Перечисление — это и значение, и тип. Его можно указывать как тип в параметрах функции:

Также перечисления после компиляции превращаются в JavaScript-объект, в котором каждому значению соответствует свойство. У этого свойства есть тип number и начинается он с 0:

Это позволяет удобно использовать стандартные методы — например, Object.keys и Object.values:

Среди ключей мы видим числа '0', '1', '2', '3'. Компилятор создает такие числовые ключи автоматически, а созданный объект выглядит так:

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

Зачем нужны перечисления

Использование enum позволяет коду быть более читаемым и поддерживаемым, так как вместо магических чисел или строк используются ясные и понятные имена. Кроме того это позволяет избежать некоторых ошибок. Рассмотрим на примере.

Возьмем ситуацию, когда нам нужно описать разные уровни доступа пользователя в системе.

Без использования enum это могло бы выглядеть так:

С использованием enum код становится более структурированным и понятным:

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

Выводы

В этом уроке мы узнали, как и зачем используется перечисление. Также мы разобрали, что его можно указывать как тип в параметрах функции.