尽管选择了“ES6/Babel”选项,但在JSBin中没有启用ES6

我在 JSBin 中将下拉列表更改为“ES6 / Babel”,但它仍然显示 ES6 功能的错误。在 JSBin 中启用 ES6 时是否需要做一些额外的更改?

回答

如果您将鼠标悬停在黄色下划线上,您会看到一个工具提示,内容如下

?? 'const' 在 ES6(使用 esnext 选项)或 Mozilla JS 扩展(使用 moz)中可用。

不幸的是,出于某种原因,JSBin 并没有决定将 ESNext 设为默认值,自动建议将其设为默认值,甚至没有暗示在哪里可以找到任何提到的选项。

但幸运的是,有谷歌。

有一个关闭的错误报告,有一些讨论,建议您可以添加其中一行

// jshint esnext: true

或者

/* jshint esnext: true */

在你的 JS 的顶部。

貌似在“账户设置”里面也有注册用户的账户设置?“喜好” ?“linting” ? “jshint”,可以添加这样的规则:

{
  "esnext": true
}

不幸的是,async仍然无法工作,因为JSHint本身抱怨“'async functions' 仅在 ES8 中可用(使用 'esversion: 8')”

需要注意的是通过选择选项卡“ES6 /巴别塔”,你告诉JSBin到transpile ES6代码下降到一个较低的版本(可能ES5.1)。如果你的代码有“错误”,即使用的语法不是 ES6 中的,而是更高版本的,那么它就不能转译。只需选择“JavaScript”而不是“ES6 / Babel”即可直接运行JS代码。尽管 linter 显示了一些错误,但它仍然有效。

您可以尝试以下几点:

  1. 尝试esversion在帐户设置中使用该选项,即

    {
      "esnext": true,
      "esversion": 8
    }
    

    我没有让评论变体起作用,而且这个帐户选项也不太可能起作用。似乎JSBin 使用了不支持esversion.

  2. 如果可能,请尝试在帐户设置中使用不同的 Linter,例如 ESLint。JSHint 之前有过各种错误,并且在采用最新的 ECMAScript 标准方面进展缓慢。

  3. 使用比 JSBin 更用户友好和现代的东西。


以上是尽管选择了“ES6/Babel”选项,但在JSBin中没有启用ES6的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>