【发布时间】:2015-12-17 15:05:15
【问题描述】:
在 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 执行,这段代码会显示正在导入的“未定义”
任何提示为什么会出现这种奇怪的行为?
【问题讨论】:
标签: typescript