gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:42:58 25 4
gpt4 key购买 nike

在 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

关于typescript - 如何在 Typescript 1.7 中使用 CommonJS 模块正确生成 ES6 目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34328088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com