Ответ
Enum (перечисление) — это тип, представляющий набор именованных констант. В TypeScript он компилируется в объект, позволяя обращаться к значениям по ключам и наоборот.
enum Direction {
Up = 'UP',
Down = 'DOWN'
}
Union (объединение) — это тип, который может быть одним из нескольких типов. Используется для описания переменной, которая может принимать разные значения.
type Status = 'success' | 'error' | 'pending';
Разница:
- Enum создает новый тип и объект в рантайме, Union — только тип.
- Enum значения можно итерировать, Union — нет.
- Union более гибкий, так как позволяет объединять любые типы (
string | number), а Enum — только конкретные значения.