从Typescript生成的导入的Node.js模块的“默认”部分是什么?

时间:2019-09-30 12:01:28

标签: node.js typescript

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

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

当我使用tsc进行转换时,它会生成此行:

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

问题在于路径模块变量的其他default成员。我在Node.js path documentation中看不到它,并且想知道为什么tsc添加了它,这是关于什么的。

1 个答案:

答案 0 :(得分:2)

它正在模拟es2015模块的默认导出:执行import foo from 'foo';后,您将成为foo模块的importing the default export

// 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