TypeScriptUnie i zawężanie
typeof (w typach)
Pobiera typ zmiennej lub wartości, żeby użyć go w innym miejscu.
Przykład
#TypeScript
const defaultSettings = {
theme: 'dark',
fontSize: 16,
sounds: true
}
type Settings = typeof defaultSettings
// type Settings = { theme: string; fontSize: number; sounds: boolean }
const custom: Settings = { ...defaultSettings, fontSize: 18 }
console.log(custom)Wynik
{ theme: 'dark', fontSize: 18, sounds: true }Definicja i zastosowanie
#W pozycji typu typeof zwraca typ podanej zmiennej: type Config = typeof defaultConfig. Dzięki temu nie musisz ręcznie opisywać typu, który już wynika z istniejącego obiektu.
To inna rzecz niż operator typeof w JavaScripcie, który w działającym programie zwraca napis, np. "string". Oba używają tego samego słowa, ale TypeScript rozróżnia je po kontekście.
Często łączy się go z keyof (keyof typeof COLORS) i as const, żeby z jednego obiektu wyprowadzić zarówno wartości, jak i typy.
Składnia
#Składnia
type Nazwa = typeof zmiennaWięcej przykładów
#TypeScript
const level = 7
console.log(typeof level)
type Level = typeof level
// type Level = 7Wynik
number
Dobre praktyki
#- Gdy obiekt konfiguracji jest źródłem prawdy, wyprowadź z niego typ przez
typeofzamiast pisać go dwa razy. - Połączenie
typeofzas constzachowuje literały zamiast rozszerzać je dostring.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.