TypeScript中函数作为参数的强类型化:如何声明回调的类型?
大家好!我最近开始学习TypeScript,在将函数作为参数传递时遇到了问题。在JavaScript中,我经常这样做:
```typescript
function processData(data, callback) {
const result = data.map(item => item * 2);
callback(result);
}
processData([1, 2, 3], function(result) {
console.log(result);
});
```
但在TypeScript中,我需要指定类型,我不明白如何正确声明函数参数的类型。我尝试了几种方式,但它们不起作用:
```typescript
// 方式1:直接指定为any
function processData(data: number[], callback: any) { ... }
// 方式2:Function
function processData(data: number[], callback: Function) { ... }
```
第一种方式破坏了TypeScript的本质——失去了类型检查。第二种方式也没有提供具体信息——我可以传递任何函数,即使参数不正确。
如何正确声明callback的类型,以便TypeScript检查:
1. 参数的数量