Funkcje
Return Type
Typ, który funkcja zwraca.
Czym jest
Typ warunkowy z infer w pozycji zwracanej — kanoniczny przykład dopasowywania wzorca do typu. infer R deklaruje zmienną, którą kompilator wypełnia przez dopasowanie, a gałąź prawdziwa to miejsce, gdzie można jej użyć.
Przykłady
ReturnType<typeof makeUser>→{ id: number; name: string; }ReturnType<() => void>→voidReturnType<() => string | number>→string | numberUnia w typie zwracanym wraca w całości; nic się tu nie dystrybuuje.
Każdy rozwinięty typ powyżej wypisał TypeScript 6.0.3, nie ręka człowieka.
Czego nie robi
- Nie przyjmuje *wartości* funkcji. Przyjmuje *typ* funkcji, i dlatego zawsze kończy się na
ReturnType<typeof fn>. - Nie rozstrzyga przeciążeń tak jak wywołanie. Dla przeciążonej funkcji podaje ostatnią sygnaturę, a nie tę, którą wybrałyby twoje argumenty.
Wniosek
typeof przenosi ze świata wartości do świata typów; ReturnType pracuje już w nim. Niemal każde użycie jednego wiąże się z drugim.

