Sobes.tech
Back to questions
Middle
4

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

Companies where asked
Киберпротект

Answer from AI

sobes.tech AI

В 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. Если просто набор значений без типа — константы.