Tipagem estrita de funções como parâmetros em TypeScript: como declarar um tipo para callback?
Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com um problema ao passar funções como argumentos. Em JavaScript, eu costumava fazer assim:
```typescript
function processData(data, callback) {
const result = data.map(item => item * 2);
callback(result);
}
processData([1, 2, 3], function(result) {
console.log(result);
});
```
Mas no TypeScript, preciso especificar os tipos, e não entendo como declarar corretamente o tipo para o parâmetro de função. Tentei algumas opções, mas elas não funcionam:
```typescript
// Opção 1: apenas usar any
function processData(data: number[], callback: any) { ... }
// Opção 2: Function
function processData(data: number[], callback: Function) { ... }
```
A primeira opção anula toda a essência do TypeScript — perde-se a verificação de tipos. A segunda também não oferece especificidade — posso passar qualquer função, mesmo com parâmetros incorretos.
Como declarar corretamente o tipo para callback para que o TypeScript verifique:
1. Quantos parâmetros a função recebe