TypeScriptTypy podstawowe

Typy literałowe

Typy dopuszczające tylko konkretne wartości, np. "easy" | "hard".

Na tej stronie

Przykład

#
TypeScript
type Theme = 'light' | 'dark' | 'system'

function applyTheme(theme: Theme): string {
  return theme === 'system' ? 'Motyw jak w systemie' : `Motyw: ${theme}`
}

console.log(applyTheme('dark'))
console.log(applyTheme('system'))
Wynik
Motyw: dark
Motyw jak w systemie

Definicja i zastosowanie

#

Typ literałowy to typ, którego jedyną dozwoloną wartością jest konkretny literał: "easy", 42 albo true. Sam w sobie jest mało przydatny, ale połączony w unię tworzy precyzyjną listę dozwolonych wartości.

Zapis type Theme = "light" | "dark" | "system" sprawia, że zmienna typu Theme przyjmie tylko te trzy napisy. Literówka "drak" zostanie wychwycona od razu, a edytor podpowie dostępne opcje.

Zmienne zadeklarowane przez const mają automatycznie typ literałowy. Przy let TypeScript rozszerza typ do string czy number, bo wartość może się zmienić.

Składnia

#
Składnia
type Nazwa = "wartość1" | "wartość2" | 3

Więcej przykładów

#
Literówka wykryta przez kompilator
TypeScript
applyTheme('drak')
// Błąd: Argument of type '"drak"' is not assignable to parameter of type 'Theme'.
const a let
TypeScript
const fixed = 'hard'
// type: "hard"
let changing = 'hard'
// type: string

Dobre praktyki

#
  • Unie literałów to często lepszy wybór niż enum: są lżejsze i czytelne w danych.
  • Do zamrożenia literałów w obiekcie lub tablicy użyj as const.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.