TypeScript Academy · Lekcja

Enums a const enum i alternatywy w postaci unii literałów

Porównanie klasycznych enumów, const enumów i alternatyw w postaci unii literałów oraz poznanie kompromisów dotyczących DX, rozmiaru i bezpieczeństwa

Lekcja 3 z 38 kroki

Enums a const enum i alternatywy w postaci unii literałów to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 3 lekcji w sumie.

Wprowadzenie

Cel: Poznać sytuacje, w których należy użyć enum, const enum lub typów union-literal. Zostanie porównany wynik działania w czasie wykonywania, DX i tree-shaking.

Enum numeryczny

Enumy numeryczne generują obiekt w czasie wykonywania i umożliwiają mapowanie odwrotne. Są proste, ale zwiększają rozmiar bundla.

enum Direction {
  Left = 0,
  Right = 1
}

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

Enum tekstowy

Enumy tekstowe są czytelne w logach i API. One również generują obiekty w czasie wykonywania.

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

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

const enum

const enum wstawia wartości podczas kompilacji, dzięki czemu nie powoduje kosztu w czasie wykonywania, ale wymaga spójnych narzędzi do budowania.

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

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

Alternatywa w postaci unii literałów

Unie literałów: nie generują kodu w czasie wykonywania, zapewniają świetne zawężanie w switch i bardzo dobrze współpracują z tree-shakingiem. W wielu przypadkach to dobry wybór domyślny.

type Dir = "left" | "right";

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

move("left");

Kiedy wybrać dane rozwiązanie

Wskazówki:

  • W większości zestawów opcji należy preferować unie literałów (brak kosztu w czasie wykonywania).
  • Należy użyć enum, jeśli potrzebny jest obiekt w czasie wykonywania lub mapowanie odwrotne.
  • Należy użyć const enum dla stałych wstawianych podczas kompilacji, jeśli obsługuje je używany proces budowania.

Sprawdzenie: unie literałów a enum

Szybkie sprawdzenie: Które stwierdzenie dotyczące typów unii literałów jako alternatywy dla enumów jest PRAWDZIWE?

Podsumowanie

Podsumowanie: enum tworzy obiekty w czasie wykonywania; const enum wstawia wartości bez kosztu w czasie wykonywania; unie literałów zapewniają bezpieczeństwo typów bez generowania kodu w czasie wykonywania. Należy wybrać rozwiązanie odpowiednie do procesu budowania i potrzeb API.

Bezpłatny start

Ucz się TypeScript dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
101
Lekcje
352

Często zadawane pytania

Czy lekcja „Enums a const enum i alternatywy w postaci unii literałów” jest bezpłatna?

Tak — pełny tekst „Enums a const enum i alternatywy w postaci unii literałów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Enums a const enum i alternatywy w postaci unii literałów”?

Porównanie klasycznych enumów, const enumów i alternatyw w postaci unii literałów oraz poznanie kompromisów dotyczących DX, rozmiaru i bezpieczeństwa Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Enums a const enum i alternatywy w postaci unii literałów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tablice i ReadonlyArray
  2. Krotki i krotki z etykietami
  3. Enums a const enum i alternatywy w postaci unii literałów
← Powrót do TypeScript Academy