Como declarar corretamente o tipo para uma função callback em TypeScript?
Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com um problema ao definir tipos para funções callback.
Eu tenho uma função que recebe um callback e o chama após algum processamento de dados. Aqui está um exemplo simplificado:
```typescript
function processData(data: string, callback) {
const result = data.toUpperCase();
callback(result);
}
```
O TypeScript reclama do `callback` — diz que o parâmetro tem tipo `any` implicitamente. Eu entendo que preciso especificar explicitamente o tipo para o callback, mas não sei como fazer isso corretamente.
Tentei diferentes opções, por exemplo:
```typescript
function processData(data: string, callback: Function) {
// ...
}
```
Isso funciona, mas não dá controle sobre quais argumentos o callback aceita e o que ele retorna. Por exemplo, quero que o callback aceite uma string e não retorne nada (void). Como descrever isso corretamente?
Também estou interessado em como lidar com callbacks opcionais (quando eles podem não existir) e como passar c