Jak używać wyliczeń w TypeScript krok po kroku
Wyliczenia w TypeScript to sposób definiowania zestawu nazwanych stałych, których można użyć do reprezentowania zbioru powiązanych wartości. Sprawiają, że kod jest bardziej czytelny i łatwiejszy w utrzymaniu, nadając tym wartościom przyjazne nazwy. Ten przewodnik przeprowadzi Cię przez używanie wyliczeń w TypeScript krok po kroku, obejmując ich typy, korzyści i praktyczne przykłady.
Czym jest Enum?
enum (skrót od "enumeration") to specjalny typ danych w TypeScript, który umożliwia zdefiniowanie zestawu nazwanych stałych. Te nazwane stałe mogą reprezentować wartości liczbowe lub ciągi znaków, dzięki czemu kod jest bardziej opisowy i mniej podatny na błędy.
Typy wyliczeń w TypeScript
W TypeScript istnieją trzy typy wyliczeń:
- Wyliczenia numeryczne
- Wyliczenia ciągów
- Heterogeniczne wyliczenia
Wyliczenia numeryczne
Wyliczenia numeryczne są domyślne w TypeScript. Są to zestawy nazwanych wartości, którym automatycznie przypisuje się wartości numeryczne zaczynając od 0 lub od niestandardowej wartości początkowej, jeśli została określona.
Przykład podstawowego wyliczenia numerycznego
Poniżej znajduje się prosty przykład wyliczenia numerycznego:
enum Direction {
Up,
Down,
Left,
Right
}
let move: Direction = Direction.Up;
console.log(move); // Output: 0
W tym przykładzie wyliczenie Direction
ma cztery elementy: Up
, Down
, Left
i Right
. Domyślnie Up
ma przypisaną wartość 0
, Down
ma wartość 1
itd. Można również określić niestandardowe wartości liczbowe dla elementów.
Wyliczenie numeryczne z wartościami niestandardowymi
Można przypisać niestandardowe wartości do elementów wyliczenia:
enum Status {
New = 1,
InProgress,
Done = 5,
Cancelled
}
console.log(Status.New); // Output: 1
console.log(Status.InProgress); // Output: 2
console.log(Status.Done); // Output: 5
console.log(Status.Cancelled); // Output: 6
W tym przykładzie Nowy
jest ustawiony na 1
, W toku
jest automatycznie ustawiane na 2
, Gotowe
jest ustawione na 5
, a Anulowane
jest automatycznie ustawiane na 6
.
Wyliczenia ciągów
Wyliczenia łańcuchowe to kolejny typ wyliczeń, w których każdy element jest inicjowany literałem łańcuchowym, co czyni je bardziej czytelnymi i łatwiejszymi do debugowania.
Przykład podstawowego wyliczenia ciągów
Poniżej znajduje się przykład wyliczenia ciągu:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT"
}
let move: Direction = Direction.Left;
console.log(move); // Output: "LEFT"
W tym przykładzie każdy element wyliczenia jest inicjowany wartością ciągu. W przeciwieństwie do wyliczeń numerycznych, wyliczenia ciągu nie mają wartości automatycznie zwiększanych.
Heterogeniczne wyliczenia
Heterogeniczne wyliczenia to wyliczenia zawierające zarówno elementy stringowe, jak i numeryczne. Chociaż możliwe jest ich zdefiniowanie, generalnie nie jest to zalecane, ponieważ może prowadzić do zamieszania i błędów w kodzie.
Przykład wyliczenia heterogenicznego
Oto przykład heterogenicznego wyliczenia:
enum MixedEnum {
Yes = "YES",
No = 0,
Maybe = 1
}
console.log(MixedEnum.Yes); // Output: "YES"
console.log(MixedEnum.No); // Output: 0
W tym przykładzie MixedEnum
zawiera zarówno wartości string, jak i numeryczne. Używaj takich wyliczeń ostrożnie, ponieważ mogą powodować zamieszanie.
Przypadki użycia Enum
Wyliczenia są pomocne w wielu sytuacjach:
- Reprezentuje zestaw powiązanych ze sobą stałych, takich jak kierunki (w górę, w dół, w lewo, w prawo).
- Definiowanie stanów w maszynie stanowej (Nowy, W toku, Gotowe, Anulowane).
- Używaj ich w poleceniach switch-case w celu zwiększenia czytelności.
Przykład wyliczenia w przypadku przełącznika
Użycie typów wyliczeniowych w instrukcji switch-case poprawia czytelność kodu i ułatwia zarządzanie stanami.
enum Status {
New,
InProgress,
Done,
Cancelled
}
function getStatusMessage(status: Status): string {
switch (status) {
case Status.New:
return "The task is new.";
case Status.InProgress:
return "The task is in progress.";
case Status.Done:
return "The task is completed.";
case Status.Cancelled:
return "The task is cancelled.";
default:
return "Unknown status.";
}
}
console.log(getStatusMessage(Status.InProgress)); // Output: "The task is in progress."
W tym przykładzie instrukcja switch-case jest bardziej czytelna i mniej podatna na błędy dzięki zastosowaniu typów wyliczeniowych.
Wniosek
Wyliczenia w TypeScript zapewniają potężny sposób definiowania zestawu nazwanych stałych, poprawiając czytelność kodu i bezpieczeństwo typu. Używając wyliczeń numerycznych, łańcuchowych, a nawet heterogenicznych, możesz lepiej zarządzać kodem i go organizować. Dzięki temu przewodnikowi krok po kroku powinieneś teraz swobodnie używać wyliczeń w TypeScript, aby kod był czystszy i łatwiejszy w utrzymaniu.