TypeScriptTypy narzędziowe
ReturnType<Type>
Pobiera typ wartości zwracanej przez funkcję.
Przykład
#TypeScript
function createProgress(done: number, total: number) {
return {
done,
total,
percent: Math.round((done / total) * 100)
}
}
type Progress = ReturnType<typeof createProgress>
// type Progress = { done: number; total: number; percent: number }
const progress: Progress = createProgress(3, 4)
console.log(`${progress.percent}%`)Wynik
75%
Definicja i zastosowanie
#ReturnType<Type> przyjmuje typ funkcji i zwraca typ jej wyniku. Zwykle łączy się go z typeof: ReturnType<typeof createUser>.
Dzięki temu nie musisz osobno deklarować typu obiektu, który tworzy funkcja. Wystarczy zmienić funkcję, a typ wyniku zaktualizuje się wszędzie, gdzie jest używany.
Dla funkcji asynchronicznych wynik to Promise<…>. Żeby dostać typ wartości wewnątrz obietnicy, połącz go z Awaited: Awaited<ReturnType<typeof fetchUser>>.
Składnia
#Składnia
type Wynik = ReturnType<typeof funkcja>Parametry typu
#Type
typ funkcji
Funkcja, której typ zwracany chcesz pobrać.
Dobre praktyki
#- Wyprowadzaj typ przez
ReturnType, gdy funkcja jest jedynym źródłem kształtu danych. - Dla funkcji
asyncużyjAwaited<ReturnType<typeof fn>>.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.