Typy literałowe
Część sekcji Wprowadzenie do TypeScript ścieżki JavaScript w Coddy. Lekcja 33 z 73.
Typy literałowe pozwalają ograniczyć zmienną do dokładnych, konkretnych wartości zamiast szerokich kategorii. Zamiast akceptować dowolny ciąg znaków, możesz ograniczyć ją tylko do "left", "right", "up" lub "down".
Typ literałowy używa dokładnej wartości jako samego typu.
Możesz tworzyć typy literałowe dla ciągów znaków, liczb lub wartości logicznych:
let direction: "left" = "left"; // Only "left" is allowed
let count: 42 = 42; // Only the number 42 is allowed
let isReady: true = true; // Only true is allowedTypy literałowe zyskują na mocy w połączeniu z typami unii, tworząc kontrolowany zbiór dozwolonych wartości. Sprawdzają się doskonale w sytuacjach takich jak kierunki, kody statusu czy opcje konfiguracji:
type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";
let playerMove: Direction = "up"; // Valid
let orderStatus: Status = "pending"; // Valid
// let invalid: Direction = "diagonal"; // Error!To podejście zapewnia elastyczność dzięki wielu opcjom, a jednocześnie gwarantuje ścisłe bezpieczeństwo typów. TypeScript wykryje literówki i nieprawidłowe wartości na etapie kompilacji, dzięki czemu Twój kod będzie bardziej niezawodny niż w przypadku używania ogólnych typów łańcuchów znaków.
Wyzwanie
ŁatwyUtwórz alias typu o nazwie Direction dla typów literałowych "left" | "right" | "up" | "down".
Utwórz alias typu o nazwie GameState dla typów literałowych "menu" | "playing" | "paused" | "gameover".
Utwórz alias typu o nazwie Difficulty dla typów literałowych "easy" | "medium" | "hard".
Teraz zadeklaruj następujące zmienne za pomocą swoich aliasów typów:
- Zadeklaruj zmienną o nazwie
playerDirectiontypuDirectioni przypisz jej wartość"up" - Zadeklaruj zmienną o nazwie
currentStatetypuGameStatei przypisz jej wartość"playing" - Zadeklaruj zmienną o nazwie
selectedDifficultytypuDifficultyi przypisz jej wartość"medium"
Utwórz funkcję o nazwie movePlayer, która przyjmuje parametr o nazwie direction typu Direction i zwraca string. Funkcja powinna zwracać komunikat w formacie "Moving [direction]".
Utwórz kolejną funkcję o nazwie updateGameState, która przyjmuje parametr o nazwie state typu GameState i zwraca string. Funkcja powinna zwracać komunikat w formacie "Game state: [state]".
Wywołaj swoje funkcje z utworzonymi zmiennymi i wyświetl wyniki:
- Wywołaj
movePlayerzplayerDirectioni wyświetl wynik - Wywołaj
updateGameStatezcurrentStatei wyświetl wynik - Wyświetl wartość
selectedDifficulty
Wyświetl każdy wynik w osobnym wierszu, w podanej wyżej kolejności.
Spróbuj swoich sił
// TODO: Napisz tutaj swój kod
// Utwórz aliasy typów dla Direction, GameState i Difficulty
// Zadeklaruj zmienne, używając utworzonych aliasów typów
// Utwórz funkcje movePlayer i updateGameState
// Wywołaj funkcje i wypisz wynikiTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wprowadzenie do TypeScript
1Pierwsze kroki z TS
Czym jest TypeScript?Dlaczego warto używać TypeScript?Twój pierwszy kod w TypeScriptProces kompilacji i błędyPodsumowanie: wprowadzenie do TS4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji strzałkowychTyp zwracany „void”Opcjonalne parametry z „?”Domyślne wartości parametrówTypowanie parametrów restDefiniowanie typów funkcjiPodsumowanie: tworzenie typowanych funkcji2Podstawowe typy
Podstawowe typy: str, num, booleanTyp „any”: furtka awaryjnaTyp „unknown”Praca z „null” i „undef”Wnioskowanie o typach w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Typy: aliasy, unie i przecięcia
Aliasy typów prostychTypy unii („|”)Praca z typami uniiTypy literałoweTypy przecięć („&”)Łączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów3Struktury danych: tablice i krotki
Tablice typowaneModyfikator "readonly" dla tablicCzym jest krotka?Deklarowanie i uzyskiwanie dostępu do krotekDestrukturyzacja krotekKrotki tylko do odczytuWielowymiarowe tablice typowaneOperator spread w tablicachPodsumowanie: tablice i krotkiPoćwicz samodzielnie: Edytor online TypeScript