Avatar ·

在 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()` 返回的是字符串,而期望的是数字。我希望编译器能严格检查类型。 另外,我见过有时会使用这样的语法