Avatar ·

Cómo tipificar correctamente una función callback en el parámetro de un método TypeScript

¡Hola a todos! Estoy empezando a entender TypeScript y me encontré con un problema. En mi clase hay un método que acepta una función callback. Quiero tipificar el parámetro para poder pasar cualquier función (con cualquier número de argumentos y valor de retorno), pero sin usar `any`, para mantener la verificación de tipos. Esto es lo que intento: ```typescript class EventBus { on(eventName: string, callback: any) { // así funciona, pero no es seguro // ... } } const bus = new EventBus(); bus.on('click', (data: number) => console.log(data)); // no habrá error, incluso si se pasa un string ``` Entiendo que `any` desactiva completamente la verificación de tipos y es una mala práctica. Intenté usar `Function`, pero también es demasiado amplio y no permite trabajar bien con los argumentos. En la documentación vi `(...args: any[]) => any`, pero me parece un parche. ¿Hay una forma más elegante? ¿Cómo declarar correctamente el tipo "cualquier función" en TypeScript para que: