В чем разница между Enum и Union

«В чем разница между Enum и Union» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

enum Direction {
  Up = 'UP',
  Down = 'DOWN'
}

Union (объединение) — это тип, который может быть одним из нескольких типов. Используется для описания переменной, которая может принимать разные значения.

type Status = 'success' | 'error' | 'pending';

Разница:

  • Enum создает новый тип и объект в рантайме, Union — только тип.
  • Enum значения можно итерировать, Union — нет.
  • Union более гибкий, так как позволяет объединять любые типы (string | number), а Enum — только конкретные значения.