satisfies

Sprawdza, czy wartość pasuje do typu, nie zmieniając typu wywnioskowanego.

Na tej stronie

Przykład

#
TypeScript
type Palette = Record<string, string | [number, number, number]>

const colors = {
  accent: '#a78bfa',
  success: [16, 185, 129]
} satisfies Palette

console.log(colors.accent.toUpperCase())
console.log(colors.success.join(', '))
Wynik
#A78BFA
16, 185, 129

Definicja i zastosowanie

#

Operator satisfies weryfikuje, że wyrażenie jest zgodne z podanym typem, ale zachowuje dokładny typ wywnioskowany z samej wartości. To różni go od adnotacji (const x: T = ...), która „rozszerza” typ do T.

Dzięki temu dostajesz dwie korzyści naraz: kompilator zgłosi literówkę lub brakujące pole, a jednocześnie zapamięta konkretne literały i klucze obiektu, więc późniejsze podpowiedzi są precyzyjne.

Najczęściej używa się go przy obiektach konfiguracji, mapach kolorów, tras czy tłumaczeń, gdzie chcesz sprawdzenia kształtu i zachowania szczegółowych typów.

Składnia

#
Składnia
const wartosc = wyrazenie satisfies Typ

Więcej przykładów

#
Adnotacja gubi szczegóły
TypeScript
const annotated: Palette = { accent: '#a78bfa' }
annotated.accent.toUpperCase()
// Błąd: Property 'toUpperCase' does not exist on type 'string | [number, number, number]'.

Dobre praktyki

#
  • Przy obiektach konfiguracji połącz satisfies z as const: { … } as const satisfies Config.
  • Wybierz adnotację, gdy chcesz, żeby zmienna miała ogólny typ, a satisfies, gdy zależy Ci na dokładnych typach wartości.

Powiązane hasła

#

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