Según esta respuesta ( https://stackoverflow.com/a/52761156/599184 ), ReturnType<> no funciona con funciones sobrecargadas en general. Sin embargo, ¿sería posible seleccionar una versión particular de la función sobrecargada y obtener su tipo de devolución?
La única forma que se me ocurre es tener un código que invoque la función sobrecargada.
function fn(arg: string): string; function fn(arg: number): number; function fn(arg: string | number): string | number { return arg; } const temp1 = () => fn('string'); type Type1 = ReturnType<typeof temp1>; // string const temp2 = () => fn(123); type Type2 = ReturnType<typeof temp2>; // number¿Hay alguna forma más limpia en la que no tenga que pasar los argumentos (solo el tipo de argumento)?