tengo dos funciones:
export const processCar = (params: IParams): Car => { // ... } export const processBoat = (params: IParams): Boat => { // ... }Tengo otra función a la que se le pasarán las dos primeras funciones como argumentos:
const processOrNull = (func: any): any => { const newFunc = (params: IParams): any => { // Perform some check. If it fails, return null. If it passes... return func(params); } return newFunc; } export const processCarOrNull = processOrNull(processCar); // (IParams) => Car | null; export const processBoatOrNull = processOrNull(processBoat); // (IParams) => Boat | null; Quiero que el resultado de processOrNull se escriba como (IParams) => (Car | null) o (IParams) => (Boat | null) , dependiendo de si la función pasada devuelve un Car o un Boat.
¿Puedo hacer esto con genéricos y, de ser así, cómo?