Знаешь ли разницу между enum и константами в TypeScript?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Константы (const) — это просто неизменяемые переменные, которые могут хранить любое значение, включая примитивы, объекты или функции. Они не имеют обратного отображения и не создают отдельного типа.

Ключевые отличия:

  • enum создаёт собственный тип с набором фиксированных значений, что удобно для ограниченного множества вариантов.
  • const — просто неизменяемая переменная, не создаёт тип и не имеет обратного отображения.
  • При компиляции enum генерирует объект, а const — просто переменную.

Пример enum:

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let dir: Direction = Direction.Up;

Пример констант:

const UP = 1;
const DOWN = 2;
const LEFT = 3;
const RIGHT = 4;

let dir = UP;

Если нужна типизация и удобство работы с набором значений — лучше использовать enum. Если просто набор значений без типа — константы.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку