在同一个typescript文件中混合require和import的问题是什么?



我有一个nodejs项目写在typescript。在一些ts文件中,我一起使用requireimport,例如当使用debugjs时,因为它只有cjs模块。我知道有@types/debug,但由于debugjs的使用相当直接,我不麻烦使用它。但expressjs是另一回事,因为我觉得@types/express可以帮助我更好地使用express。

我知道cjs和ej模块之间的差异,例如使用Node.js要求与ES6导入/导出讨论,但由于我的ts文件将被翻译成在nodejs内部运行的cjs(我不使用mjs或在package.json中设置"type": "module"),问题是什么是混合requireimport在相同的typescript文件?

到目前为止我还没有发现任何问题。

需要在单个文件中同时使用requireimport的情况非常罕见,通常不建议这样做,并且认为这不是一个好的实践。然而,有时这是我们解决问题最简单的方法。总会有取舍,决定权在你。但是,如果您使用ES6模块,建议使用import

此外,commonJSrequire和ES6import之间的差异是

  • 使用require,不能加载你需要加载的片段,但是使用import,你可以选择性地只加载你需要的片段,这可以节省内存。
  • 在性能方面,importrequire更快/更好,因为它是asynchronous,但requiresynchronous

最新更新