首页 文章

如何在Typescript 1.7中使用CommonJS模块正确生成ES6目标?

提问于
浏览
2

在Typescript 1.7中添加了一个功能,允许单独定位语言系统和模块系统,前者可以为最新节点生成带有CommonJS模块系统的ES6代码 . 但是,如果我尝试使用以下命令和源代码:

tsc *.ts --target es6 --module commonjs
// foo.ts
"use strict";
import Bar from './bar';
console.log(Bar);
// bar.ts
"use strict";
export default class Bar {}

令人惊讶的是,生成的代码生成了一些非常奇怪的导出符号:

// foo.js
"use strict";
var bar_1 = require('./bar');
console.log(bar_1.default);
// bar.js
"use strict";
class Bar {}
exports.Bar = Bar;

如您所见, bar.js 导致导出 Bar 对象,而 foo.js 尝试导入 default 对象 . 当然,如果通过最新的 nodejs v4.1.0执行,此代码显示"undefined"正在导入

任何提示为何会出现这种奇怪的行为

1 回答

相关问题