Що таке enum у TypeScript
Що таке enum?
enum (перерахування) у TypeScript — це спосіб визначити набір іменованих констант. Це робить код більш зрозумілим і запобігає розкиданню “магічних” рядків або чисел по всьому проекту.
enum Status {
Pending,
InProgress,
Done
}Числові vs рядкові enums
За замовчуванням enums є числовими: перший елемент отримує значення 0, а кожен наступний член збільшується на 1. Ви можете переопределити початкове значення або встановити явні числа.
enum Status {
Pending = 1,
InProgress = 3,
Done = 4
}Рядкові enums повинні бути призначені явно:
enum Role {
Admin = 'admin',
User = 'user'
}Зворотне рендеринг
Для числових enums згенерований об'єкт JavaScript має зворотне рендеринг. Це означає, що ви можете отримати ім'я enum з його числового значення:
enum Status {
Pending,
Done
}
Status.Pending // 0
Status[0] // 'Pending'Рядкові enums не мають зворотного рендеринг.
const enum
Використання const enum вказує компілятору вбудувати значення та пропустити генерацію об'єкта під час виконання. Це зменшує розмір бандлу, але усуває зворотне рендеринг.
const enum Directions {
Up,
Down
}
const move = Directions.Up // буде скомпільовано в літерал 0Коли використовувати enums
- Коли у вас є фіксований список станів (статуси, ролі, типи повідомлень).
- Коли один і той же набір значень використовується в кількох місцях.
- Коли ви хочете чистіші, самодокументовані API замість випадкових рядків/чисел.
Порада для співбесіди:
Згадайте, що enums є цукром над об'єктами, опишіть різницю між числовими та рядковими enums, і не забудьте про const enum для оптимізації.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.