Why does JSHint throw a warning if I am using const?

Javascriptnode.jsConstantsJslintJshint

Javascript Problem Overview


This is the error I get when using 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" />

My code looks like this:

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

The code works fine only JSHint is warning me every time.

Javascript Solutions


Solution 1 - Javascript

When relying upon ECMAScript 6 features such as const, you should set this option so JSHint doesn't raise unnecessary warnings.

/*jshint esnext: true */ (Edit 2015.12.29: updated syntax to reflect @Olga's comments)

/*jshint esversion: 6 */

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

This option, as the name suggests, tells JSHint that your code uses ECMAScript 6 specific syntax. http://jshint.com/docs/options/#esversion

Edit 2017.06.11: added another option based on this answer.

While inline configuration works well for an individual file, you can also enable this setting for the entire project by creating a .jshintrc file in your project's root and adding it there.

{
  "esversion": 6
}

Solution 2 - Javascript

You can add a file named .jshintrc in your app's root with the following content to apply this setting for the whole solution:

{
    "esversion": 6
}

James' answer suggests that you can add a comment /*jshint esversion: 6 */ for each file, but it is more work than necessary if you need to control many files.

Solution 3 - Javascript

I got this same warning when using an export statement. I'm using VS Code and used a similar approach to Wenlong Jiang's solution.

  1. User Settings

  2. JSHint config

  3. "jshint.config": {} (Edit)

  4. Use double quotes when specifying "esversion"

    Or copy this snippet into User Settings:

    "jshint.options": {
      "esversion": 6,
    }
    

Creating a .jshintrc file isn't necessary if you want to configure the global jshint settings for your editor

Solution 4 - Javascript

If you're using VSCode:

1.

  • Go to preferences -> settings (cmd + ,)
  • Type jshint.options into the search bar
  • Hover over it and click on the pencil icon
  • Its now appended on the right side.
  • Add "esversion": 6 to the options object.

2.

Or simply add this to your user settings:

"jshint.options": {
    "esversion": 6
}

[UPDATE] new vscode settings

  • Go to preferences -> settings (cmd + ,)
  • type jshint into search

VSCode Settings

  • continue with step 2.

Solution 5 - Javascript

I spent ages trying to fix this. Every solution talks about 'setting options'. I don't know what that means. Finally, I figured it out. You can just include a commented out line at the top of the file /*jshint esversion: 6 */.

Solution

Solution 6 - Javascript

You can specify esversion:6 inside jshint options object. Please see the image. I am using grunt-contrib-jshint plugin.

enter image description here

Solution 7 - Javascript

Create .jshintrc file in the root dir and add there the latest js version: "esversion": 9 and asi version: "asi": true (it will help you to avoid using semicolons)

{
    "esversion": 9,
    "asi": true
}

Solution 8 - Javascript

When you start using ECMAScript 6 this error thrown by your IDE.

There are two options available:

if you have only one file and want to use the es6 then simply add below line at the top of the file.

/*jshint esversion: 6 */

Or if you have number of js file or you are using any framework(like nodejs express)you can create a new file named .jshintrc in your root directory and add code below in the file:

{
    "esversion": 6
}

If you want to use the es6 version onward for each project you can configure your IDE.

Solution 9 - Javascript

In your package.json you can tell Jshint to use es6 like this

"jshintConfig":{
    "esversion": 6 
}

Solution 10 - Javascript

For SublimeText 3 on Mac:

  1. Create a .jshintrc file in your root directory (or wherever you prefer) and specify the esversion:
    # .jshintrc
    {
      "esversion": 6
    }
  1. Reference the pwd of the file you just created in SublimeLinter user settings (Sublime Text > Preference > Package Settings > SublimeLinter > Settings)
    // SublimeLinter Settings - User
    {
      "linters": {
        "jshint": {
          "args": ["--config", "/Users/[your_username]/.jshintrc"]
        }
      }
    }
  1. Quit and relaunch SublimeText

Solution 11 - Javascript

If you are using Webstorm and if you don't have your own config file, then just enable EcmaScript.next in Relaxing options in in

> Settings | Languages & Frameworks | JavaScript | Code Quality Tools | > JSHint

See this question How-do-I-resolve-these-JSHint-ES6-errors

Solution 12 - Javascript

If you are using Grunt configuration, You need to do the following steps

Warning message in Jshint:

enter image description here

Solution:

  1. Set the jshint options and map the .jshintrc.js file

enter image description here

  1. Create the .jshintrc.js file in that file add the following code

{
"esversion": 6
}
After configured this, Run again It will skip the warning,

enter image description here

Solution 13 - Javascript

Creating a .jshintrc file is not necessary.

If you are using ECMAScript 6 then all you need to do is tell JSHint that:

  1. Go to File > Settings
  2. Navigate to Languages & Frameworks > JavaScript > Code Quality Tools > JSHint.
  3. Scroll down to find Warn about incompatibilities with the specified ECMAScript version.
  4. Click on Set.
  5. Enter 6 and then press [Set].
  6. Click [OK]

Solution 14 - Javascript

Create a file called, say jshint_opts with this content: { "esversion": 6 }

Then invoke jshint with something like this command line:

jshint --config jshint_opts lib/*.js

Solution 15 - Javascript

May 2020 Here's a simple solution i found and it will resolve for all of my projects ,on windows if your project is somewhere inside c: directory , create new file .jshintrc and save it in C directory open this .jshintrc file and write { "esversion": 6} and that's it. the warnings should go away , same will work in d directory

enter image description here

enter image description here yes you can also enable this setting for the specific project only by same creating a .jshintrc file in your project's root and adding { "esversion": 6}

Solution 16 - Javascript

To fix this in Dreamweaver CC 2018, I went to preferences, edit rule set - select JS, edit/apply changes, find "esnext" and changed the false setting to true. It worked for me after hours of research. Hope it helps others.

Solution 17 - Javascript

I had the same issue, and I found that by adding:

/* jshint esversion: 8 */

(or whatever jshint esversion you need, like 6)

To the top of my .js file satisfies the cause for the warnings.

Solution 18 - Javascript

If using Sublime Text 3:

  • Go to Preferences -> Settings
  • Under Preferences.sublime-settings—User add "esversion": 6

Solution 19 - Javascript

In a new version of Dreamweaver to solve this error

  • Go to Edit->Preference->Linting

  • And the go-to js Edit rule set and past

    "jshintConfig":{
    "esversion": 6 
    

    }

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAndre SchlesingerView Question on Stackoverflow
Solution 1 - JavascriptJames HibbardView Answer on Stackoverflow
Solution 2 - JavascriptZanonView Answer on Stackoverflow
Solution 3 - JavascriptNicholas GentileView Answer on Stackoverflow
Solution 4 - JavascriptPhilView Answer on Stackoverflow
Solution 5 - JavascriptJosh PittmanView Answer on Stackoverflow
Solution 6 - JavascriptWenlong JiangView Answer on Stackoverflow
Solution 7 - JavascriptJohnPixView Answer on Stackoverflow
Solution 8 - JavascriptPrashant BarveView Answer on Stackoverflow
Solution 9 - JavascriptSinghakView Answer on Stackoverflow
Solution 10 - JavascriptlaptiteView Answer on Stackoverflow
Solution 11 - JavascriptSudhanshu GaurView Answer on Stackoverflow
Solution 12 - JavascriptSridharView Answer on Stackoverflow
Solution 13 - JavascriptxtemporeView Answer on Stackoverflow
Solution 14 - JavascriptAlan WendtView Answer on Stackoverflow
Solution 15 - JavascriptKunal RajputView Answer on Stackoverflow
Solution 16 - Javascriptuser13758676View Answer on Stackoverflow
Solution 17 - JavascriptkrazykaighView Answer on Stackoverflow
Solution 18 - JavascriptLondon804View Answer on Stackoverflow
Solution 19 - JavascriptMuhammad Umar Arslan MuhammadView Answer on Stackoverflow