Почему JSHint выдает предупреждение, если я использую const?

это ошибка, которую я получаю при использовании 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 предупреждает меня каждый раз.

10 ответов


при использовании функций ECMAScript 6, таких как const, вы должны установить эту опцию, чтобы JSHint не вызывал ненужных предупреждений.

/ * JSHint esnext: true*/ (изменить 2015.12.29: обновленный синтаксис для отражения @Ольга)

/*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: добавлена еще одна опция на основе ответ.

хотя встроенная конфигурация хорошо работает для отдельного файла, вы также можете включить этот параметр для всего проекта, создав .jshintrc файл в корне вашего проекта и добавить его там.

{
  "esversion": 6
}

Вы можете добавить файл с именем .jshintrc в вашем приложении root со следующим содержимым, чтобы применить этот параметр для решение:

{
    "esversion": 6
}

Джеймс' ответ предполагает, что вы можете добавить комментарий /*jshint esversion: 6 */ на каждого, но это больше работы, чем необходимо, если вам нужно контролировать много файлов.


Я потратил века, пытаясь исправить это. Каждое решение говорит о "настройке параметров". Я не знаю, что это значит. Наконец-то я понял. Вы можете просто закомментировать строку в верхней части файла /*jshint esversion: 6 */.

Solution


Я получил это же предупреждение при использовании оператора экспорта. Я использую VS-код и использовал аналогичный подход к решению Wenlong Jiang.

  1. Настройки Пользователя
  2. JSHint config
  3. "jshint.options": {} (редактировать)
  4. использовать двойные кавычки при указании "esversion"

    или скопируйте этот фрагмент в Настройки пользователя:

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

создание .jshintrc файл не требуется, если вы хотите настройте глобальные параметры jshint для своего редактора


вы можете указать esversion:6 внутри объекта параметров jshint. Пожалуйста, посмотрите изображение. Я использую плагин grunt-contrib-jshint.

enter image description here


если вы используете VSCode:

  • на предпочтения ->настройки (cmd + ,)
  • тип jshint.options в строке поиска
  • наведите на него курсор и нажмите на значок карандаша
  • теперь он добавлен с правой стороны.
  • добавить "esversion": 6 к объекту options.

или просто добавьте это в Настройки пользователя:

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

когда вы начинаете использовать ECMAScript 6, Эта ошибка возникает в вашей IDE.

есть два варианта:

Если у вас есть только один файл и вы хотите использовать es6, просто добавьте строку ниже в верхней части файла.

/*jshint esversion: 6 */

или если у вас есть номер JS-файла или вы используете любую структуру (например, NodeJS express), вы можете создать новый файл с именем .jshintrc в корневом каталоге и добавьте код ниже в файл:

{
    "esversion": 6
}

Если вы хотите использовать версию es6 для каждого проекта, который вы можете настроить IDE.


создайте файл с именем, скажем jshint_opts с этим содержимым: { "esversion": 6 }

затем вызовите jshint с чем-то вроде этой командной строки:

jshint --config jshint_opts lib/*.js


при использовании Sublime Text 3:

  • на предпочтения ->настройки
  • под настройки.sublime-настройки-пользователь добавить "esversion": 6

Если вы используете Webstorm и если у вас нет собственного файла конфигурации, просто включите EcmaScript.next в спокойного варианта в

Настройки / Языки И Фреймворки / JavaScript / Инструменты Качества Кода | У JSHint

посмотреть здесь How-do-I-resolve-these-JSHint-ES6-errors