Avatar ·

Como tipar corretamente uma função de callback nos parâmetros de um método TypeScript?

Olá a todos! Comecei a estudar TypeScript e me deparei com um problema ao tipar callbacks. Tenho um método que aceita uma função de callback e quero especificar seu tipo estritamente, mas não sei como fazer isso corretamente. Aqui está um exemplo. Tenho uma classe `DataProcessor` que processa dados e chama o callback após a conclusão: ```typescript class DataProcessor { process(data: number[], callback: ???) { const result = data.map(x => x * 2); callback(result); } } ``` O problema é que não sei o que escrever no lugar de `???`. Se eu escrevo `callback: any`, o TypeScript para de verificar tipos e perco todas as vantagens da tipagem estática. Se escrevo `callback: Function`, também não obtenho autocomplete e verificação de argumentos. Quero que o callback possa ser qualquer função, mas que o TypeScript verifique se ela aceita a quantidade correta de argumentos e retorna algo (ou nada). Como declarar o tipo corretamente para esse callback? Preciso descrever o tipo de retorno?