Avatar ·

¿Es posible en TypeScript pasar funciones estrictamente tipadas como parámetros?

¡Hola a todos! Recientemente comencé a estudiar TypeScript y me encontré con un problema al trabajar con funciones de orden superior. Tengo una función que recibe otra función como argumento, y quiero que TypeScript verifique que la función pasada tenga los tipos correctos de parámetros y valor de retorno. Aquí hay un ejemplo de lo que intento hacer: ```typescript function applyOperation(x: number, y: number, operation: (a: number, b: number) => number): number { return operation(x, y); } // Esto funciona const sum = applyOperation(5, 3, (a, b) => a + b); // 8 // Pero ¿qué pasa si quiero pasar una función que recibe strings? const badResult = applyOperation(5, 3, (a, b) => a.toString() + b.toString()); // No hay error, pero el resultado es incorrecto ``` En el último caso, TypeScript no se queja porque `a.toString() + b.toString()` devuelve un string, pero se espera un número. Quiero que el compilador verifique estrictamente los tipos. También he visto que a veces se usa esta sintaxis