首页 > 解决方案 > 从 Typescript 生成的导入 Node.js 模块的“默认”部分是什么?

问题描述

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

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

当我转译时,使用tsc它会生成这一行:

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

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

标签: node.jstypescript

解决方案


它正在模仿 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

推荐阅读