Parameters<Type>

Pobiera typy parametrów funkcji jako krotkę.

Na tej stronie

Przykład

#
TypeScript
function award(student: string, exp: number, reason?: string) {
  return `${student}: +${exp} EXP${reason ? ` (${reason})` : ''}`
}

type AwardArgs = Parameters<typeof award>
// type AwardArgs = [student: string, exp: number, reason?: string]

function logged(...args: AwardArgs): string {
  const result = award(...args)
  console.log('LOG:', result)
  return result
}

logged('Ania', 20, 'zadanie z Flexboxa')
logged('Kuba', 5)
Wynik
LOG: Ania: +20 EXP (zadanie z Flexboxa)
LOG: Kuba: +5 EXP

Definicja i zastosowanie

#

Parameters<Type> zwraca krotkę z typami parametrów funkcji. Dla (name: string, level: number) => void wynikiem jest [name: string, level: number].

Przydaje się przy tworzeniu funkcji opakowujących, które przyjmują te same argumenty co oryginał, na przykład logowanie wywołań, opóźnianie (debounce) czy przechwytywanie błędów.

Pojedynczy parametr wyciągniesz przez indeks: Parameters<typeof fn>[0] to typ pierwszego argumentu.

Składnia

#
Składnia
type Argumenty = Parameters<typeof funkcja>

Parametry typu

#
  • Type

    typ funkcji

    Funkcja, której parametry chcesz pobrać.

Dobre praktyki

#
  • Łącz Parameters i ReturnType, żeby pisać uniwersalne funkcje opakowujące.
  • Typ jednego argumentu: Parameters<typeof fn>[1].

Powiązane hasła

#

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