0Pricing
TypeScript Academy · Урок

Перечисления, const enum и альтернативы на основе объединений литералов

Сравните классические перечисления, const enum и альтернативы на основе объединений литералов; узнайте об их компромиссах по удобству разработки, размеру и безопасности.

«Перечисления, const enum и альтернативы на основе объединений литералов» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 3 уроков всего.

Введение

Цель: понять, когда использовать перечисление, константное перечисление или типы литеральных объединений. Вы сравните результат во время выполнения, удобство разработки и удаление неиспользуемого кода при сборке.

Числовое перечисление

Числовые перечисления создают объект во время выполнения и разрешают обратное сопоставление. Это просто, но немного увеличивает размер пакета.

enum Direction {
  Left = 0,
  Right = 1
}

const d: Direction = Direction.Left;
console.log(d); // 0

Строковое перечисление

Строковые перечисления удобны для чтения в журналах и программных интерфейсах. Они также создают объекты во время выполнения.

enum Status {
  Ok = "ok",
  Error = "error"
}

const s: Status = Status.Ok;
console.log(s); // "ok"

Константное перечисление

Константное перечисление подставляет значения во время компиляции, не создавая затрат во время выполнения, но требует согласованных инструментов сборки.

const enum Axis {
  X = 0,
  Y = 1
}

const a: Axis = Axis.X;
console.log(a); // 0 (inlined)

Альтернатива в виде литерального объединения

Литеральные объединения: не создают результат во время выполнения, отлично сужают типы в switch и позволяют эффективно удалять неиспользуемый код при сборке. Во многих случаях это отличный вариант по умолчанию.

type Dir = "left" | "right";

function move(d: Dir) {
  switch (d) {
    case "left":
      console.log("←");
      break;
    case "right":
      console.log("→");
      break;
  }
}

move("left");

Когда сделать выбор

Рекомендации:

  • В большинстве наборов вариантов отдавайте предпочтение литеральным объединениям (затраты во время выполнения отсутствуют).
  • Используйте перечисление, если нужен объект во время выполнения или обратное сопоставление.
  • Используйте константное перечисление для подставляемых констант, если это поддерживается вашей сборкой.

Проверка литеральных объединений и перечислений

Быстрая проверка: какое утверждение о типах литеральных объединений как альтернативе перечислениям верно?

Итоги

Итоги: перечисление создаёт объекты во время выполнения; константное перечисление подставляет значения без затрат; литеральные объединения обеспечивают безопасность без результата во время выполнения. Выбирайте вариант с учётом сборки и требований программного интерфейса.

Часто задаваемые вопросы

Урок «Перечисления, const enum и альтернативы на основе объединений литералов» бесплатный?

Да — полный текст урока «Перечисления, const enum и альтернативы на основе объединений литералов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 3 уроков всего.

Чему я научусь в уроке «Перечисления, const enum и альтернативы на основе объединений литералов»?

Сравните классические перечисления, const enum и альтернативы на основе объединений литералов; узнайте об их компромиссах по удобству разработки, размеру и безопасности. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Перечисления, const enum и альтернативы на основе объединений литералов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Массивы и ReadonlyArray
  2. Кортежи и именованные кортежи
  3. Перечисления, const enum и альтернативы на основе объединений литералов
← Назад к TypeScript Academy