typeof (w typach)

Pobiera typ zmiennej lub wartości, żeby użyć go w innym miejscu.

Na tej stronie

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 zmienna

Więcej przykładów

#
typeof w działającym programie
TypeScript
const level = 7
console.log(typeof level)
type Level = typeof level
// type Level = 7
Wynik
number

Dobre praktyki

#
  • Gdy obiekt konfiguracji jest źródłem prawdy, wyprowadź z niego typ przez typeof zamiast pisać go dwa razy.
  • Połączenie typeof z as const zachowuje literały zamiast rozszerzać je do string.

Powiązane hasła

#

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