Funkcje
Parameters
Lista parametrów funkcji, jako krotka.
Czym jest
Ta sama sztuczka z `infer` co w `ReturnType`, wymierzona w drugi koniec sygnatury. Wynikiem jest krotka i to czyni go składalnym: rozwiń ją, dopisz do niej, odetnij głowę i oddaj wynik innej sygnaturze.
Przykłady
Parameters<typeof send>→[to: string, retries: number]Parameters<() => void>→[]Parameters<(first: string, ...rest: number[]) => void>
→[first: string, ...rest: number[]]Parametry reszty przeżywają jako element reszty, więc krotka pozostaje tak wyrazista jak sygnatura.
Każdy rozwinięty typ powyżej wypisał TypeScript 5.9.3, nie ręka człowieka.
Czego nie robi
- Nie zachowuje nazw parametrów w formie, którą da się odczytać. Widać je w podpowiedziach jako etykiety krotki, ale żadna operacja na typach do nich nie sięgnie.
- Nie radzi sobie z przeciążeniami lepiej niż `ReturnType` — wygrywa ostatnia sygnatura.
Wniosek
Lista parametrów jest krotką i stosuje się do niej każda technika krotkowa z archiwum. Ta równoważność jest powodem, dla którego krotki wariadyczne trafiły do języka.