为什么如果我使用const,JSHint会抛出警告?

这是我使用const时得到的错误:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" /> 

我的代码如下所示:

 const Suites = { Spade: 1, Heart: 2, Diamond: 3, Club: 4 }; 

代码工作正常,只有JSHint每次警告我。

当依赖ECMAScript 6function(如const ,应该设置此选项,以便JSHint不会引发不必要的警告。

/ * jshint esnext:true * /编辑2015.12.29 :更新语法以反映@ Olga的注释 )

 /*jshint esversion: 6 */ const Suites = { Spade: 1, Heart: 2, Diamond: 3, Club: 4 }; 

顾名思义,这个选项告诉JSHint你的代码使用了ECMAScript 6的特定语法。 http://jshint.com/docs/options/#esversion

编辑2017.06.11 :根据这个答案添加另一个选项。

虽然内联configuration适用于单个文件,但您也可以通过在项目的根目录中创build一个.jshintrc文件并将其添加到整个项目来启用此设置。

 { "esversion": 6 } 

您可以在您的应用程序根目录中添加一个名为.jshintrc的文件,并将以下内容应用于整个解决scheme

 { "esversion": 6 } 

杰克的答案build议您可以为每个文件添加一个注释/*jshint esversion: 6 */ ,但是如果您需要控制许多文件,则它的工作量会大于所需。

我花了很多年试图解决这个问题。 每个解决scheme都会谈到“设置选项”。 我不知道这是什么意思。 最后,我明白了。 你可以在文件/*jshint esversion: 6 */的顶部加一个注释掉的行。

解

您可以在jshint选项对象中指定esversion:6 。 请看图片。 我正在使用grunt-contrib-jshint插件。

在这里输入图像说明

使用导出语句时,我得到了同样的警告。 我正在使用VSC,并采用类似的方法来处理文龙强的解决scheme。

  1. 用户设置
  2. JSHintconfiguration
  3. “jshint.options”:{}(Edit)
  4. 指定“esversion”时使用双引号

    “jshint.options”:{“esversion”:6,}

如果要为编辑器configuration全局jshint设置,则不需要创build.jshintrc文件