TypeScript: Typ Enum
Opublikowano: 24.07.2021 - tagi: TypeScript JavaScript Typ
Typ Enum
TypeScript dostarcza typ danych często spotkany, w wielu innych językach programowania: typ wyliczeniowy Enum.
Służy on do stworzenia zbioru stałych, a każda stała z tego zbioru posiada nazwę i wartość.
Ten typ można podzielić na trzy rodzaje:
1 Typ wyliczeniowy numerczny 2 Typ wyliczeniowy ciągu znaków 3 Typ wyliczeniowy mieszany
Enum numeryczny
Typ wyliczeniowy tworzymy za pomocą słowa: enum:
enum Meal {
Pizza,
Pasta,
Salad
}
Taki zapis spowoduje, że pierwszy wpis: Pizza będzie mieć wartość 0, a kolejne: 1 i 2. Czyli występuje tu zwykła inkrementacja.
Możemy napisać także tak:
enum Meal {
Pizza = 1,
Pasta,
Salad
}
I tak dwa kolejne wpisy będą mieć wartość odpowiendnio: 2 i 3.
Enum ciąg znaków
W podobny sposób możemy stworzyć typ wyliczeniowy składający się z ciągu znaków:
enum Status {
DRAFT = 'draft',
PUBLISHED = 'published',
PENDING = 'pending'
}
Do takiego typu możemy odwołać się na dwa sposoby:
Status.DRAFT; // draft
Status['PUBLISHED']; // published
Enum mieszany
Ten rodzaj typu wyliczeniowego jest miksem dwóch powyżej opisanych.
Przykład:
enum Animal {
Lion = 'lion',
Monkey = 2,
Bird
}
Odwrotne mapowanie
Typ wyliczeniowe wspiera tzw.: odwrotne mapowanie(ang.: reverse mapping). To znaczy, że mamy dostęp do wartości typu wyliczeniowego jeśli znamy nazwę jakiegoś elementu, ale także dostęp do nazwy znając wartość.
enum Meal {
Pizza = 1,
Pasta,
Salad
}
Meal.Pizza; // 1
Meal['Pasta']; // 2
Meal[3]; // Salad
Dodatkowo jeśli wywołasz:
console.log(Meal);
Otrzymasz wynik:
{
"1": "Pizza",
"2": "Pasta",
"3": "Salad",
"Pizza": 1,
"Pasta": 2,
"Salad": 3
}