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
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); // 0Enum 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.
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
- Tablice i ReadonlyArray
- Krotki i krotki z etykietami
- Enums a const enum i alternatywy w postaci unii literałów