Enums (Перечисления) — это способ определить набор именованных констант. В TypeScript по умолчанию используются числовые перечисления.
Члены числового Enum автоматически получают значения, начиная с 0. Вы также можете задать значение первого элемента вручную, и последующие будут инкрементироваться от него. Либо можно задать значения каждому элементу явно.
enum Direction {
Up = 1,
Down, // станет 2
Left, // станет 3
Right // станет 4
}
Уникальная особенность числовых Enums — наличие обратного маппинга (Reverse Mapping): можно получить имя ключа по его числовому значению. Упражнения помогут разобраться с нумерацией и использованием Enums.
- Модуль 1: Введение в TypeScript
- Модуль 2: Примитивные типы
- Модуль 3: Специальные типы
- Модуль 4: Массивы
- Модуль 5: Кортежи (Tuples)
- Модуль 6: Объекты
- Модуль 7: Функции
- Модуль 8: Union типы
- Модуль 9: Литеральные типы
- Модуль 10: Type Aliases
- Модуль 11: Интерфейсы
- Модуль 12: Type Guards и Narrowing
- Модуль 13: Enums
- Числовые Enums.
- Строковые Enums.
- Гетерогенные Enums.
- const Enums.
- Enum как тип.
- Модуль 14: Классы
- Модуль 15: Generics — основы
- Модуль 16: Generics — ограничения
- Модуль 17: Utility Types — базовые
- Модуль 18: Utility Types — работа с Union
- Модуль 19: Utility Types — функции
- Модуль 20: Type Assertions
- Модуль 21: Keyof и Typeof операторы
- Модуль 22: Mapped Types
- Модуль 23: Conditional Types
- Модуль 24: Discriminated Unions
- Модуль 25: Модули и типы
- Модуль 26: Declaration Files
- Модуль 27: Типизация асинхронного кода
- Модуль 28: Практические паттерны
1. Значение по умолчанию
В приведённом фрагменте кода TypeScript объявлен числовой enum без явных инициализаторов. Проанализируйте код и определите, какое числовое значение будет у третьего элемента этого enum. Введите одно число в поле ответа.
enum Direction {
Up,
Down,
Left,
Right
}
console.log(Direction.Left);2. Инициализация с середины
Проанализируйте приведённый фрагмент кода TypeScript, демонстрирующий числовой enum. Первый элемент инициализирован явно. Определите, какое значение будет иметь следующий, неинициализированный элемент этого enum. Выберите правильный вариант ответа.
enum StatusCode {
Initial = 10,
Next
}
console.log(StatusCode.Next);3. Объявление Enum
Дополните фрагмент кода на TypeScript, чтобы корректно объявить числовое перечисление (enum) с именем Direction. В коде пропущено ключевое слово для объявления перечисления и оператор присваивания значения первому элементу. После заполнения пропусков enum должен содержать элементы Up, Down, Left, Right, где Up имеет значение 1, а остальные элементы получают следующие последовательные числовые значения (2, 3, 4).
input1S Direction {
Up input2S 1,
Down,
Left,
Right
}4. Имена и значения
В левой колонке приведены имена элементов числового перечисления (enum) TypeScript, а в правой — числовые значения, которые эти элементы принимают после вычисления с учётом смешанной инициализации. Сопоставьте каждый элемент слева с соответствующим числовым значением справа. Обратите внимание, что значения вычисляются по правилам TypeScript: если элемент не инициализирован явно, он получает значение предыдущего элемента, увеличенное на 1.
UpDownLeftRightCenterMiddle5. Обратный маппинг
В этом задании вам предстоит заполнить пропуски в коде TypeScript, демонстрирующем использование обратного маппинга числовых перечислений (enums). Обратный маппинг позволяет получить имя элемента enum по его числовому значению. Вам нужно выбрать правильные синтаксические конструкции из выпадающих списков, чтобы код корректно получал имя элемента и выводил его в консоль.
enum Direction {
Up = 1,
Down,
Left,
Right
}
let directionName = input1S;
console.log(input2S);6. Порядок возрастания
Перед вами строки, представляющие элементы числового перечисления (enum) в TypeScript. Некоторые элементы имеют явно указанные числовые значения, некоторые — нет. Неявные значения вычисляются по правилу: если элемент не имеет явного значения, то он получает значение предыдущего элемента плюс 1. Если предыдущий элемент также не имеет явного значения, то правило продолжается до первого явного значения. Если явных значений нет в начале enum, то первый элемент получает значение 0, а каждый следующий на 1 больше предыдущего. Расставьте строки в порядке возрастания числовых значений элементов.
7. Структура Enum
Разметьте структуру числового перечисления (Enum) в TypeScript. Укажите для каждого выделенного фрагмента, является ли он именем перечисления, ключом элемента или значением элемента. Обратите внимание, что имя перечисления следует после ключевого слова `enum`, ключи элементов — это имена констант, а значения — присвоенные им числа.
enum {{Status~|~t1}} {
{{Active~|~t2}} = {{1~|~t3}},
{{Inactive~|~t4}} = {{0~|~t5}},
{{Pending~|~t6}} = {{2~|~t7}}
}