从 Typescript 生成的导入的 Node.js 模块的'default'部分是什么?



在打字稿文件中,我导入了文件系统和路径节点模块。我以非常标准的方式使用它们,例如:

const workDir = path.join(outputDir, "process-specs");.

当我使用tsc转译时,它会生成以下行:

var workDir = path_1.default.join(outputDir, "process-specs");

问题是路径模块变量的附加default成员。我在 Node.js 路径文档中没有看到它,并且想知道为什么 tsc 添加它以及这是关于什么的。

它遵循 es2015 模块的默认导出:当您执行import foo from 'foo';时,您将导入 foo 模块的默认导出。

// foo.ts
export default foo;
// otherfile.ts
import foo from 'foo';

与指定导出

// foo.ts
export foo;
// otherfile.ts
import { foo } from 'foo';

如果这只在node中运行.js而不是浏览器,你可以像平常一样使用require,例如const fs = require('fs');.您需要安装节点类型,以便编译器理解它:

npm install --save-dev @types/node

tsconfig.json 中的allowSyntheticDefaultImports就是为 tsc 和importHelpers生成默认值的原因,esModuleInterop假设更高级的使用方式。

最新更新