在打字稿文件中,我导入了文件系统和路径节点模块。我以非常标准的方式使用它们,例如:
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
假设更高级的使用方式。