我有一个节点+ express应用程序,我使用TypeScript。我有一些API路由,我在每个路由中声明了一个函数:
function cleanReqBody(req) {
req.body.createdBy = req.user;
req.body.modifiedBy = req.user;
req.body.modified = new Date();
}
对我的代码运行tsc时,我得到TS2393: Duplicate function implementation
。我真的不明白为什么。我可以理解,如果这是客户端代码,它会认为两个函数都在同一范围(窗口),但为什么这适用于节点模块? Aren的每个节点路由使用不共享范围的独立节点模块吗?
答案 0 :(得分:4)
让我的每个节点路线使用不分享范围的独立节点模块
在运行时也是如此。但是,如果您的文件包含根级
import
或export
语句,则 TypeSript 只会知道此事实。(more)
如果您使用以下错误修改每个文件:
function cleanReqBody(req) {
req.body.createdBy = req.user;
req.body.modifiedBy = req.user;
req.body.modified = new Date();
}
export let something = 123;
问题应该消失。
PS:请注意,如果您没有使用import
/ export
,那么您将错失TypeScript了解Node.JS模块系统并帮助您维护文件模块的巨大优势。