Przejdź do treści
webtype.orgwebtype.org

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    Funkcje

    ReturnType

    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>
      →void
    • ReturnType<() => string | number>
      →string | number

      Unia 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.