rav*_*shi 1 node.js express typescript
我有一个 node + express 应用程序,我在其中使用 TypeScript。我有几个 API 路由,我在每个路由中声明了一个函数,如下所示:
function cleanReqBody(req) {
req.body.createdBy = req.user;
req.body.modifiedBy = req.user;
req.body.modified = new Date();
}
Run Code Online (Sandbox Code Playgroud)
对我的代码运行 tsc 时,我得到TS2393: Duplicate function implementation
. 我真的不明白为什么。我可以理解这是否是客户端代码,它会认为两个函数都在同一范围内(窗口),但为什么这适用于节点模块?不是我的每个节点路由都使用不共享范围的单独节点模块吗?
不是我的每个节点路由都使用不共享范围的单独节点模块
在运行时确实如此。但是,如果您的文件包含根级别或语句,TypeSript只会知道这一事实。(更多)
import
export
如果您修改每个文件并出现如下错误:
function cleanReqBody(req) {
req.body.createdBy = req.user;
req.body.modifiedBy = req.user;
req.body.modified = new Date();
}
export let something = 123;
Run Code Online (Sandbox Code Playgroud)
问题应该消失。
PS:请注意,如果您不使用import
/,export
您将错过 TypeScript 理解 Node.JS 模块系统并帮助您维护文件模块的一大优势。
归档时间: |
|
查看次数: |
4232 次 |
最近记录: |