Menu
Coddy logo textTech

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 allowed

Typy 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.

challenge icon

Wyzwanie

Łatwy

Utwó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 playerDirection typu Direction i przypisz jej wartość "up"
  • Zadeklaruj zmienną o nazwie currentState typu GameState i przypisz jej wartość "playing"
  • Zadeklaruj zmienną o nazwie selectedDifficulty typu Difficulty i 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 movePlayer z playerDirection i wyświetl wynik
  • Wywołaj updateGameState z currentState i 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 wyniki
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wprowadzenie do TypeScript

Poćwicz samodzielnie: Edytor online TypeScript