在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执行,此代码将显示正在导入的“未定义”
有什么暗示为什么会有这种奇怪的行为吗?
您在TS 1.7中发现了一个错误。我相信这是正确的问题:
我通过运行TS @ next(版本1.8.0-dev.20151216)中的代码进行了验证:
npm install typescript@next --save
node node_modules/typescript/bin/tsc --target es6 --module commonjs *.ts && node foo.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句