如何在TypeScript方法参数中正确类型化回调函数?
大家好!我开始学习TypeScript,在类型化回调时遇到了问题。我有一个方法接受一个回调函数,我想严格指定它的类型,但不知道如何正确操作。
这是一个例子。我有一个类 `DataProcessor`,它处理数据并在完成后调用回调:
```typescript
class DataProcessor {
process(data: number[], callback: ???) {
const result = data.map(x => x * 2);
callback(result);
}
}
```
问题是我不知道在 `???` 处该写什么。如果我写 `callback: any`,TypeScript 会停止检查类型,我就失去了静态类型化的所有优势。如果我写 `callback: Function`,也得不到自动补全和参数检查。
我希望回调可以是任何函数,但 TypeScript 要检查它是否接受正确数量的参数并返回某些内容(或什么都不返回)。如何正确声明这种回调的类型?是否需要描述它?