Przejdź do treści
webtype.orgReturnType

    ↑↓ 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 5.9.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.