Cómo tipificar correctamente una función callback en los parámetros de un método TypeScript
¡Hola a todos! Empecé a estudiar TypeScript y me encontré con un problema al tipificar callbacks. Tengo un método que acepta una función de callback, y quiero especificar estrictamente su tipo, pero no sé cómo hacerlo correctamente.
Aquí hay un ejemplo. Tengo una clase `DataProcessor` que procesa datos y llama al callback después de completarse:
```typescript
class DataProcessor {
process(data: number[], callback: ???) {
const result = data.map(x => x * 2);
callback(result);
}
}
```
El problema es que no sé qué escribir en lugar de `???`. Si escribo `callback: any`, TypeScript deja de verificar tipos y pierdo todas las ventajas de la tipificación estática. Si escribo `callback: Function`, tampoco obtengo autocompletado ni verificación de argumentos.
Quiero que el callback pueda ser cualquier función, pero que TypeScript verifique que acepta la cantidad correcta de argumentos y devuelve algo (o nada). ¿Cómo declaro correctamente el tipo para dicho callback? ¿Necesito describir el tipo de retorno?