Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
enum (enumeration, перечисление) — это тип данных в TypeScript, который позволяет объявить набор именованных констант. Перечисления делают код более выразительным и помогают избежать «магических» строк или чисел.
enum Status {
Pending,
InProgress,
Done
}
По умолчанию перечисления числовые: первый элемент имеет значение 0, каждый следующий увеличивается на 1. Можно задать стартовое значение или присваивать значения вручную.
enum Status {
Pending = 1,
InProgress = 3,
Done = 4
}
Строковые enum’ы задаются явно:
enum Role {
Admin = 'admin',
User = 'user'
}
Для числовых enum’ов TypeScript создаёт объект с двухсторонним мэппингом, поэтому по значению можно получить имя:
enum Status {
Pending,
Done
}
Status.Pending // 0
Status[0] // 'Pending'
У строковых перечислений обратного отображения нет.
Ключевое слово const перед enum говорит компилятору «inline-ить» значения и не создавать объект в результирующем JS-коде. Это уменьшает размер бандла, но лишает возможности обратного отображения.
const enum Directions {
Up,
Down
}
const move = Directions.Up // будет подставлено число 0
На собеседовании:
Упомяните, что enum — это синтаксический сахар вокруг объектов, что у них есть числовая и строковая формы, а также const enum для оптимизации.