typescript - 如何将导出的函数转换为函数类型?
问题描述
我正在编写 Express 中间件,我发现很难决定应该如何对函数进行类型转换。例如,我有一个错误处理程序:
export function errorHandler(err, req, res, next) {
...
}
TypeScript 正确地抱怨参数是任意的,所以我将它转换为(ErrorRequestHandler
来自@types/express
):
export function errorHandler(err, req, res, next) {
...
} as ErrorRequestHandler;
但是由于优先级,这被错误地解释了,所以我不得不将演员表括在括号中:
export (function errorHandler(err, req, res, next) {
...
} as ErrorRequestHandler);
这消除了类型错误,但这使得函数声明成为一个命名函数表达式,一些不可导出的东西更不用说它看起来很丑。所以我陷入了两难境地。我应该如何在导出错误处理程序的同时对其进行转换?我是否必须使用旧<>
语法?
解决方案
试试这个。
export const errorHandler: ErrorRequestHandler = (err, req, res, next) => {
...
}
推荐阅读
- matlab - 如何在 MATLAB 中模拟一个简单的方程?
- typescript - 使用 --build 标志使用 typescript transpiler (TSC) 构建问题
- python - 如何分组并获得每组熊猫最常用的单词和二元组
- javascript - 如何在执行任何类方法之前注入条件检查
- python - Keras 模型输出是 float32 而不是 uint8 ...尽管数据标签是 uint8
- node.js - 有没有办法避免设置超时
- powershell - 在 Powershell 中找不到类型 [System.Management.Automation.IValidateSetValuesGenerator] 错误
- reactjs - 本地主机上的 Google Maps JS API:RefererNotAllowedMapError
- mysql - Rails 和 mysql 在使用相同的连接字符串时使用不同的数据库
- git - Git 克隆什么都不做