Saltar al contenido
webtype.orgwebtype.org

    ↑↓ mover · ⏎ abrir · esc cerrar

    Funciones

    ReturnType

    El tipo que devuelve una función.

    Qué es

    Un tipo condicional con infer en la posición de retorno — el ejemplo canónico de encajar un patrón sobre un tipo. infer R declara una variable que el compilador rellena al emparejar, y la rama verdadera es donde puedes usarla.

    Ejemplos

    • ReturnType<typeof makeUser>
      →{ id: number; name: string; }
    • ReturnType<() => void>
      →void
    • ReturnType<() => string | number>
      →string | number

      Un tipo de retorno de unión vuelve entero; aquí no se distribuye nada.

    Cada tipo resuelto de arriba lo imprimió TypeScript 6.0.3, no se escribió a mano.

    Lo que no hace

    • No toma un *valor* de función. Toma un *tipo* de función, y por eso siempre acabas escribiendo ReturnType<typeof fn>.
    • No resuelve sobrecargas como lo haría una llamada. Ante una función sobrecargada informa de la última firma, no de la que habrían elegido tus argumentos.

    Conclusión

    typeof cruza del mundo de los valores al de los tipos; ReturnType trabaja ya dentro. Casi todo uso de uno implica el otro.