Menu
Coddy logo textTech

Гетерогенные перечисления

Часть раздела Введение в TypeScript путешествия по JavaScript на Coddy — урок 55 из 73.

TypeScript также поддерживает гетерогенные перечисления — перечисления, которые содержат смесь строковых и числовых членов в одном и том же объявлении.

Вот как можно создать гетерогенное перечисление:

enum MixedEnum {
  No = 0,
  Yes = "YES",
  Maybe = 1
}

В этом примере No и Maybe являются числовыми членами, в то время как Yes — строковым членом. TypeScript допускает такую гибкость, хотя важно отметить, что гетерогенные перечисления редко используются на практике.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Создайте гетерогенное перечисление (enum) с именем ResponseCode, которое смешивает строковые и числовые значения:

  • Success, инициализированное значением 200
  • Error, инициализированное значением "ERROR"
  • NotFound, инициализированное значением 404
  • Timeout, инициализированное значением "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.Success
  • errorCode типа ResponseCode и присвойте ей ResponseCode.Error
  • notFoundCode типа ResponseCode и присвойте ей ResponseCode.NotFound
  • timeoutCode типа 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


// Создайте демонстрационные переменные


// Выведите необходимые результаты
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в TypeScript