Гетерогенные перечисления
Часть раздела Введение в TypeScript путешествия по JavaScript на Coddy — урок 55 из 73.
TypeScript также поддерживает гетерогенные перечисления — перечисления, которые содержат смесь строковых и числовых членов в одном и том же объявлении.
Вот как можно создать гетерогенное перечисление:
enum MixedEnum {
No = 0,
Yes = "YES",
Maybe = 1
}В этом примере No и Maybe являются числовыми членами, в то время как Yes — строковым членом. TypeScript допускает такую гибкость, хотя важно отметить, что гетерогенные перечисления редко используются на практике.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоСоздайте гетерогенное перечисление (enum) с именем ResponseCode, которое смешивает строковые и числовые значения:
Success, инициализированное значением200Error, инициализированное значением"ERROR"NotFound, инициализированное значением404Timeout, инициализированное значением"TIMEOUT"
Создайте функцию с именем handleResponse, которая принимает один параметр:
codeтипаResponseCode
Функция должна:
- Проверять код ответа и выводить различные сообщения в зависимости от значения
- Если код равен
ResponseCode.Success, вывести"Request successful" - Если код равен
ResponseCode.Error, вывести"General error occurred" - Если код равен
ResponseCode.NotFound, вывести"Resource not found" - Если код равен
ResponseCode.Timeout, вывести"Request timed out" - Иметь тип возвращаемого значения
void
Создайте четыре переменные для демонстрации значений перечисления:
successCodeтипаResponseCodeи присвойте ейResponseCode.SuccesserrorCodeтипаResponseCodeи присвойте ейResponseCode.ErrornotFoundCodeтипаResponseCodeи присвойте ейResponseCode.NotFoundtimeoutCodeтипаResponseCodeи присвойте ейResponseCode.Timeout
Выведите следующие результаты:
- Выведите значение
successCode - Выведите значение
errorCode - Выведите значение
notFoundCode - Выведите значение
timeoutCode - Вызовите
handleResponseсResponseCode.Success - Вызовите
handleResponseсerrorCode - Вызовите
handleResponseс числовым значением404
Шпаргалка
TypeScript поддерживает гетерогенные перечисления, которые содержат смесь строковых и числовых членов в одном объявлении:
enum MixedEnum {
No = 0,
Yes = "YES",
Maybe = 1
}В гетерогенных перечислениях можно смешивать числовые и строковые значения. Хотя TypeScript допускает такую гибкость, гетерогенные перечисления редко используются на практике.
Попробуйте сами
// TODO: Напишите свой код здесь
// Создайте перечисление ResponseCode
// Создайте функцию handleResponse
// Создайте демонстрационные переменные
// Выведите необходимые результатыВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в TypeScript
1Начало работы с TS
Что такое TypeScript?Зачем использовать TypeScript?Ваш первый код на TypeScriptПроцесс компиляции и ошибкиИтоги: Введение в TS4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация стрелочных функцийТип возвращаемого значения 'void'Необязательные параметры с '?'Значения параметров по умолчаниюТипизация Rest-параметровОпределение типов функцийИтоги: Создание типизированных функций2Основные типы
Базовые типы: str, num, booleanТип 'any': лазейкаТип 'unknown'Работа с 'null' и 'undef'Вывод типов в действииЯвные аннотации типовИтоги: Практика по основным типам5Типы: псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения ('|')Работа с типами объединенияЛитеральные типыТипы пересечения ('&')Комбинирование псевдонимов типовИтоги: продвинутые комбинации типов8Перечисления (Enums)
Что такое числовое перечисление?Использование числовых перечисленийЧто такое строковое перечисление?Использование строковых перечисленийГетерогенные перечисленияИтоги: использование перечислений3Структуры данных: массивы и кортежи
Типизированные массивыМодификатор 'readonly' для массивовЧто такое кортеж?Объявление кортежей и доступ к нимДеструктуризация кортежейКортежи readonlyМногомерные типизированные массивыОператор spread с массивамиИтоги: массивы и кортежи