在 TypeScript 中是否可以将严格类型化的函数作为参数传递?
大家好!我最近开始学习 TypeScript,在处理高阶函数时遇到了一个问题。我有一个函数,它接受另一个函数作为参数,我希望 TypeScript 能够检查传递的函数是否具有正确的参数类型和返回值类型。
以下是我尝试做的示例:
```typescript
function applyOperation(x: number, y: number, operation: (a: number, b: number) => number): number {
return operation(x, y);
}
// 这可以工作
const sum = applyOperation(5, 3, (a, b) => a + b); // 8
// 但如果我想传递一个接受字符串的函数呢?
const badResult = applyOperation(5, 3, (a, b) => a.toString() + b.toString()); // 没有错误,但结果不正确
```
在最后一个例子中,TypeScript 没有报错,因为 `a.toString() + b.toString()` 返回的是字符串,而期望的是数字。我希望编译器能严格检查类型。
另外,我见过有时会使用这样的语法