为什么在转换到ES2015时Babel不使用javascript类?

时间:2018-08-27 12:36:30

标签: javascript ecmascript-6 babel

我最近一直在尝试在线Babel转译工具,并且我注意到在将类转译为ES2015时,它不使用javascript类,而是创建var _createClass = function () {...样板:Demo

但是,在ES2015中添加了javascript类关键字。 Source

仅在勾选ES2016时才使用javascript类。

那是为什么?

2 个答案:

答案 0 :(得分:3)

  

我注意到,将类转换为ES2015时,它不使用javascript类:https://babeljs.io/repl#?presets=es2015&…

您不是在将ES2015移植到ES2015,而是将从ES2015移植到旧版本。 ES2015 preset选择为ES2015素材生成ES3 / 5代码的所有转换。

  

仅在勾选ES2016时才使用javascript类。

是的,当您仅转换ES2016(或更高版本)内容时,它将保留ES2015的class语法和其他功能。

答案 1 :(得分:0)

  

但是,在ES2015中添加了javascript类关键字

是的,关键字是在ES2015上定义的,而class在此之前已经是保留字,但是实际的实现是另外一回事了。正如@AshKander在评论中提到的那样,将babel与特定目标一起使用的目的是使该代码在支持该目标的所有浏览器上都能正常工作。

List of reserved keywords (present and future)