TypeScriptTypy narzędziowe
Parameters<Type>
Pobiera typy parametrów funkcji jako krotkę.
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
ParametersiReturnType, ż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.