TypeScript Academy · Lekcja

Wyliczenia: stałe liczbowe i tekstowe

Zastąp magiczne ciągi znaków i liczby wyliczeniami.

Lekcja 4 z 413 kroki

Wyliczenia: stałe liczbowe i tekstowe to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 4 z 4. 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 4 lekcji w sumie.

Wprowadzenie

Enumy pozwalają definiować zbiór nazwanych stałych wartości. Zastępują magiczne liczby i napisy czytelnymi nazwami, których TypeScript pilnuje.

Enumy liczbowe

Domyślnie elementy enuma otrzymują automatycznie zwiększane liczby rozpoczynające się od 0.
enum Direction {
  Up,    // 0
  Down,  // 1
  Left,  // 2
  Right, // 3
}
console.log(Direction.Up); // 0

Niestandardowe wartości enuma liczbowego

Możesz ustawić wartość początkową lub nadpisać poszczególne elementy. Kolejne elementy są automatycznie zwiększane względem ostatniej ustawionej wartości.
enum Status {
  Active = 1,
  Inactive, // 2
  Banned = 100,
}

Enumy napisowe

Enumy napisowe wymagają jawnego określenia wartości każdego elementu. W logach i serializowanych danych są czytelniejsze niż liczby.
enum Color {
  Red = 'RED',
  Green = 'GREEN',
  Blue = 'BLUE',
}

Używanie enumów w funkcjach

Użyj typu enuma jako typu parametru, aby ograniczyć wartości do zdefiniowanego zbioru.
function move(dir: Direction): void {
  console.log('Moving:', Direction[dir]);
}
move(Direction.Up);

Mapowanie odwrotne (tylko numeryczne)

Enumy liczbowe obsługują mapowanie odwrotne: na podstawie wartości można wyszukać nazwę elementu. Enumy napisowe tego nie obsługują.
enum Status { Active = 1, Inactive = 2 }
console.log(Status[1]); // 'Active'
console.log(Status.Active); // 1

Enumy const

`const enum` jest wstawiany bezpośrednio w czasie kompilacji — nie jest generowany żaden obiekt JavaScript. Zmniejsza to rozmiar bundla, ale ogranicza introspekcję w czasie działania.
const enum Axis { X, Y, Z }
const a = Axis.X; // compiled to: const a = 0;

Enumy a unia literałów

Wielu programistów TypeScript preferuje typy unii literałów zamiast enumów. Są lżejsze i działają bez kodu wykonywanego w czasie działania.
// Enum
enum Dir { Up = 'UP', Down = 'DOWN' }

// Union literal (preferred by many)
type Dir2 = 'UP' | 'DOWN';

Enumy heterogeniczne (unikaj ich)

Mieszanie wartości napisowych i liczbowych w jednym enumie jest dozwolone, ale mylące. Unikaj tego wzorca.
// Avoid:
enum Mixed { A = 1, B = 'bee' }

Enumy są rzeczywistymi obiektami w czasie działania

W przeciwieństwie do interfejsów i aliasów typów enumy generują kod JavaScript. Skompilowany kod zawiera obiekt JavaScript z mapowaniami zarówno nazwa–wartość, jak i wartość–nazwa (w przypadku enumów liczbowych).

Iterowanie po wartościach enuma

Użyj Object.values() lub Object.keys() na obiekcie enuma, aby iterować po jego elementach w czasie działania.
enum Role { Admin = 'ADMIN', User = 'USER', Guest = 'GUEST' }
const roles = Object.values(Role);
console.log(roles); // ['ADMIN', 'USER', 'GUEST']

Szybkie sprawdzenie

Który typ enuma obsługuje mapowanie odwrotne (wyszukiwanie nazwy na podstawie wartości)?

Podsumowanie

Enumy definiują nazwane zbiory stałych jako rzeczywiste obiekty JavaScript. Używaj enumów napisowych dla czytelności, enumów const dla wydajności, a jako lżejszą alternatywę rozważ typy unii literałów.
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 „Wyliczenia: stałe liczbowe i tekstowe” jest bezpłatna?

Tak — pełny tekst „Wyliczenia: stałe liczbowe i tekstowe” 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 4 lekcji w sumie.

Co nauczysz się w „Wyliczenia: stałe liczbowe i tekstowe”?

Zastąp magiczne ciągi znaków i liczby wyliczeniami. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Wyliczenia: stałe liczbowe i tekstowe”?

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. Typowane tablice: T[] i Array
  2. Tablice tylko do odczytu i niezmienne dane
  3. Krotki: typowane tablice o stałej długości
  4. Wyliczenia: stałe liczbowe i tekstowe
← Powrót do TypeScript Academy