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

grigoryvp

在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对象。当然,如果通过最新的nodejsv4.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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Angular 1 App管理Typescript中的ES6 / 2015承诺

来自分类Dev

使用Angular 1 App管理Typescript中的ES6 / 2015承诺

来自分类Dev

如何使用CommonJS模块将Webpack和ES6与依赖项一起使用?

来自分类Dev

TypeScript 1.5:CommonJS'export ='的ES6模块默认导入(仅.d.ts问题?)

来自分类Dev

如何发布带有commonjs和es6版本的NPM模块?

来自分类Dev

如何在TypeScript中使用ES6模块语法导入angular.IInjectorService

来自分类Dev

如何正确地将ES6“导出默认值”与CommonJS“要求”一起使用?

来自分类Dev

从Typescript中的http url导入ES6模块

来自分类Dev

在Typescript中使用CommonJS模块中的类

来自分类Dev

使用ES6模块语法浏览Webstorm中的Typescript引用

来自分类Dev

如何导入在Typescript中使用module.exports =的CommonJS模块

来自分类Dev

在ES6的import语法中,如何准确评估模块?

来自分类Dev

延迟模块加载在ES6中如何工作

来自分类Dev

如何使用 promise.all 在 ES6/Typescript/Angular 中的多个 if 语句之后返回?

来自分类Dev

如何在带有NodeJS目标的TypeScript中正确使用模块和接口?

来自分类Dev

使用外部模块时如何正确使用TypeScript接口?

来自分类Dev

单个模块中的Angular 1.x和es6多个常量

来自分类Dev

TypeScript + AngularJS 1:如何使用选择指令连接枚举?

来自分类Dev

使用Typescript的Ionic 1应用程序中的Cordova插件

来自分类Dev

ReactJS.net-我如何使用ES6模块

来自分类Dev

如何测试使用jsdom导入jQuery的ES6模块

来自分类Dev

如何使用TypeScript返回正确的Promise

来自分类Dev

如何特征检测es6模块

来自分类Dev

es6使用TypeScript破坏函数中的参数

来自分类Dev

如何使TypeScript使用AMD模块生成的代码实际执行?

来自分类Dev

使用ES6模块的CreateJS

来自分类Dev

在Express中使用ES6模块

来自分类Dev

正确使用ES6生成器和分页

来自分类Dev

如何使用TypeScript在Dojo中调用xhr

Related 相关文章

  1. 1

    使用Angular 1 App管理Typescript中的ES6 / 2015承诺

  2. 2

    使用Angular 1 App管理Typescript中的ES6 / 2015承诺

  3. 3

    如何使用CommonJS模块将Webpack和ES6与依赖项一起使用?

  4. 4

    TypeScript 1.5:CommonJS'export ='的ES6模块默认导入(仅.d.ts问题?)

  5. 5

    如何发布带有commonjs和es6版本的NPM模块?

  6. 6

    如何在TypeScript中使用ES6模块语法导入angular.IInjectorService

  7. 7

    如何正确地将ES6“导出默认值”与CommonJS“要求”一起使用?

  8. 8

    从Typescript中的http url导入ES6模块

  9. 9

    在Typescript中使用CommonJS模块中的类

  10. 10

    使用ES6模块语法浏览Webstorm中的Typescript引用

  11. 11

    如何导入在Typescript中使用module.exports =的CommonJS模块

  12. 12

    在ES6的import语法中,如何准确评估模块?

  13. 13

    延迟模块加载在ES6中如何工作

  14. 14

    如何使用 promise.all 在 ES6/Typescript/Angular 中的多个 if 语句之后返回?

  15. 15

    如何在带有NodeJS目标的TypeScript中正确使用模块和接口?

  16. 16

    使用外部模块时如何正确使用TypeScript接口?

  17. 17

    单个模块中的Angular 1.x和es6多个常量

  18. 18

    TypeScript + AngularJS 1:如何使用选择指令连接枚举?

  19. 19

    使用Typescript的Ionic 1应用程序中的Cordova插件

  20. 20

    ReactJS.net-我如何使用ES6模块

  21. 21

    如何测试使用jsdom导入jQuery的ES6模块

  22. 22

    如何使用TypeScript返回正确的Promise

  23. 23

    如何特征检测es6模块

  24. 24

    es6使用TypeScript破坏函数中的参数

  25. 25

    如何使TypeScript使用AMD模块生成的代码实际执行?

  26. 26

    使用ES6模块的CreateJS

  27. 27

    在Express中使用ES6模块

  28. 28

    正确使用ES6生成器和分页

  29. 29

    如何使用TypeScript在Dojo中调用xhr

热门标签

归档