打字稿错误TS2393:Node / Express应用程序中的重复功能实现

时间:2015-10-26 20:30:41

标签: node.js express typescript

我有一个节点+ 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的每个节点路由使用不共享范围的独立节点模块吗?

1 个答案:

答案 0 :(得分:4)

  

让我的每个节点路线使用不分享范围的独立节点模块

     

在运行时也是如此。但是,如果您的文件包含根级importexport语句,则 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模块系统并帮助您维护文件模块的巨大优势。