Числовые Enums

Тренажер по TypeScript для пользователей с начальным уровнем подготовки.

Тренажер по TypeScript

Enums (Перечисления) — это способ определить набор именованных констант. В TypeScript по умолчанию используются числовые перечисления.

Члены числового Enum автоматически получают значения, начиная с 0. Вы также можете задать значение первого элемента вручную, и последующие будут инкрементироваться от него. Либо можно задать значения каждому элементу явно.

enum Direction {
Up = 1,
Down, // станет 2
Left, // станет 3
Right // станет 4
}

Уникальная особенность числовых Enums — наличие обратного маппинга (Reverse Mapping): можно получить имя ключа по его числовому значению. Упражнения помогут разобраться с нумерацией и использованием Enums.

Список тем

1. Значение по умолчанию

id: 40693_enum_num_01_give_result

В приведённом фрагменте кода TypeScript объявлен числовой enum без явных инициализаторов. Проанализируйте код и определите, какое числовое значение будет у третьего элемента этого enum. Введите одно число в поле ответа.

Что должно получиться?
enum Direction {
    Up,
    Down,
    Left,
    Right
}

console.log(Direction.Left);
Сообщения
Проверить
Показать подсказку

2. Инициализация с середины

id: 40693_enum_num_02_predict_result

Проанализируйте приведённый фрагмент кода TypeScript, демонстрирующий числовой enum. Первый элемент инициализирован явно. Определите, какое значение будет иметь следующий, неинициализированный элемент этого enum. Выберите правильный вариант ответа.

Выберите правильный вариант ответа
enum StatusCode {
  Initial = 10,
  Next
}

console.log(StatusCode.Next);
Сообщения
Проверить
Показать подсказку

3. Объявление Enum

id: 40693_enum_num_03_replace

Дополните фрагмент кода на TypeScript, чтобы корректно объявить числовое перечисление (enum) с именем Direction. В коде пропущено ключевое слово для объявления перечисления и оператор присваивания значения первому элементу. После заполнения пропусков enum должен содержать элементы Up, Down, Left, Right, где Up имеет значение 1, а остальные элементы получают следующие последовательные числовые значения (2, 3, 4).

Заполните пропуски
input1S Direction {
  Up input2S 1,
  Down,
  Left,
  Right
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Имена и значения

id: 40693_enum_num_04_compare

В левой колонке приведены имена элементов числового перечисления (enum) TypeScript, а в правой — числовые значения, которые эти элементы принимают после вычисления с учётом смешанной инициализации. Сопоставьте каждый элемент слева с соответствующим числовым значением справа. Обратите внимание, что значения вычисляются по правилам TypeScript: если элемент не инициализирован явно, он получает значение предыдущего элемента, увеличенное на 1.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Up
Down
Left
Right
Center
Middle
11
6
21
12
20
5
Сообщения
Проверить
Показать подсказку

5. Обратный маппинг

id: 40693_enum_num_05_select_fill

В этом задании вам предстоит заполнить пропуски в коде TypeScript, демонстрирующем использование обратного маппинга числовых перечислений (enums). Обратный маппинг позволяет получить имя элемента enum по его числовому значению. Вам нужно выбрать правильные синтаксические конструкции из выпадающих списков, чтобы код корректно получал имя элемента и выводил его в консоль.

Нужно правильно расставить в пропуски предложенные варианты
enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let directionName = input1S;
console.log(input2S);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Порядок возрастания

id: 40693_enum_num_06_sequencing

Перед вами строки, представляющие элементы числового перечисления (enum) в TypeScript. Некоторые элементы имеют явно указанные числовые значения, некоторые — нет. Неявные значения вычисляются по правилу: если элемент не имеет явного значения, то он получает значение предыдущего элемента плюс 1. Если предыдущий элемент также не имеет явного значения, то правило продолжается до первого явного значения. Если явных значений нет в начале enum, то первый элемент получает значение 0, а каждый следующий на 1 больше предыдущего. Расставьте строки в порядке возрастания числовых значений элементов.

Расставьте строки в правильном порядке
D
E = 10
C = 3
F
B
A = 5
Сообщения
Проверить
Показать подсказку

7. Структура Enum

id: 40693_enum_num_07_highlight_parts

Разметьте структуру числового перечисления (Enum) в TypeScript. Укажите для каждого выделенного фрагмента, является ли он именем перечисления, ключом элемента или значением элемента. Обратите внимание, что имя перечисления следует после ключевого слова `enum`, ключи элементов — это имена констант, а значения — присвоенные им числа.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
enum {{Status~|~t1}} {
    {{Active~|~t2}} = {{1~|~t3}},
    {{Inactive~|~t4}} = {{0~|~t5}},
    {{Pending~|~t6}} = {{2~|~t7}}
}
Имя перечисления
Ключ элемента
Значение элемента
Сообщения
Проверить
Показать подсказку

TypeScript: компиляция и запуск

id: 40693_compiler

Погрузитесь в работу с числовыми Enums, где TypeScript берет на себя рутину по назначению индексов! В этом примере вы увидите, как работает автоинкремент и как можно вручную управлять значениями. Попробуйте изменить начальное число в `Direction` или добавить свои коды в `HttpStatus`, чтобы увидеть, как изменятся результаты в консоли. Обязательно протестируйте 'обратное сопоставление' — это уникальная фишка числовых перечислений, позволяющая получить имя ключа по его значению. Экспериментируйте с кодом, добавляйте свои условия и создайте собственную систему статусов!

TS
Запустить тренажёр (TypeScript)
НайтиКурс.Ру