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