javascript - 设置匿名函数 TypeScript 的类型
问题描述
我在 Express 中有一个匿名函数,如下所示:
app.use((err, req, res, next) => {
// ...
});
我想将函数的类型设置为ErrorRequestHandler
(不是返回类型!)。
我可以这样做:
const X: ErrorRequestHandler = (err, req, res, next) => {
// ...
}
app.use(X);
但是有语法可以内联吗?像这样:
app.use((err, req, res, next) => {
// ...
} : ErrorRequestHandler); // Note: this doesn't work.
解决方案
你只需要使用一些额外的括号来帮助 Typescript。
例如..
app.use(<ErrorRequestHandler>((err, req, res, next) => {
}));
你当然as
也可以使用,以避免任何 JSX 混淆。
app.use(((err, req, res, next) => {
}) as ErrorRequestHandler);
注意上面的整个函数是如何括在括号内的,这允许 Typescript 将类型转换应用于整个函数表达式。
req
, res
, &上的代码完成next
将按预期工作。
推荐阅读
- reactjs - How to render HTML and Code stored in database using Reactjs component - getting rendered unformatted
- python - 比较两个列表并仅保留具有匹配值的行
- scala - 如何在运行时在 Spark 中设置执行程序内存
- android - 如何在 AOSP 项目中使用我预建的 C++ 静态/共享库
- r - 更简单的绘图方法
- robotframework - 从机器人框架中的“写入”命令中删除提示信息
- python - 如何使用python将点云转换为网格
- java - deepToString 中的这个条件何时会评估为真?
- c# - oData V4 - 返回导致重复记录的未排序数据
- javascript - 文件在 dart html http 调用中转换为 base 64