Jshint: Свойства "распространения" объекта (предложение этапа 2) не поддерживаются

Созданный на 30 июл. 2016  ·  27Комментарии  ·  Источник: jshint/jshint

У меня есть что-то вроде этого

  args: {
    ...connectionArgs,
  },

И jshint его жалуются на
xpected '}' to match '{' from line 167 and instead saw '...'.

Что я должен добавить в свой файл .jshintrc , чтобы его можно было уничтожить?

Has PR P1 Proposal

Самый полезный комментарий

+1 за поддержку этого. Он уже широко используется в React/Redux.

Все 27 Комментарий

В настоящее время JSHint не поддерживает эту предлагаемую языковую функцию. Однако недавно он достиг «этапа 2» в процессе стандартизации, поэтому мы заинтересованы в добавлении поддержки в будущую версию.

О, спасибо @jugglinmike , есть идеи о том, как я могу заставить jshint игнорировать это, по крайней мере?

Конечно, вы захотите использовать встроенные директивы jshint ignore:start и jshint ignore:end :

  args: {
+   // jshint ignore:start
    ...connectionArgs,
+   // jshint ignore:end
  },

Я обновил название проблемы, чтобы более точно описать запрос функции.

Было бы здорово иметь поддержку JSHint для этого, так как сейчас это этап 3.

+1 за поддержку этого. Он уже широко используется в React/Redux.

+1. Кто-нибудь работает над этим?

+1 за это. Спасибо, парни!

+1 это бы очень понравилось

+1

+1

Поддержка этой языковой функции была объединена с веткой функций v2.10.0 (через gh-3150), поэтому мы ожидаем, что она будет включена в следующий второстепенный выпуск JSHint. Я обозначу эту проблему как «имеет PR», чтобы лучше сообщить об этом статусе.

Буквально несколько дней назад они объявили:

Поддержка этой языковой функции была объединена с функциональной веткой v2.10.0 (через gh-3150), поэтому мы ожидаем, что она будет включена в следующий дополнительный выпуск JSHint. Я обозначу эту проблему как «имеет PR», чтобы лучше сообщить об этом статусе.

Но вот как я это исправил:

Добавьте ОБА esnext и esversion в ваш файл .jshintrc :

...
"esnext": true,
"esversion": 6,
...

Вот мой полный файл .jshintrc :

{
    "mocha": true,
    "freeze": true,
    "bitwise": false,
    "browserify": true,
    "strict": true,
    "worker": true,
    "scripturl": true,
    "latedef": "nofunc",
    "onevar": true,
    "node": true,
    "maxstatements": 25,
    "futurehostile": true,
    "noarg": true,
    "unused": true,
    "esnext": true,
    "esversion": 6,
    "eqeqeq": true,
    "nocomma": false,
    "devel": true,
    "maxdepth": 6,
    "jquery": true,
    "browser": true,
    "debug": true,
    "maxparams": 5,
    "undef": true,
    "globalstrict": true,
    "maxcomplexity": 20,
    "typed": true,
    "nonew": true,
    "forin": false,
    "shadow": true,
    "-W018": false
}

+1 не может дождаться выхода версии 2.10.0. Молодец! Есть ли сроки для v2.10.0?

При запуске [email protected]

Когда у меня есть оба

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

Я получаю следующую ошибку:

Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned).

То же самое здесь: Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned).

Каковы сроки для 2.10.0 ?

Я также получаю Incompatible values for the 'esversion' and 'esnext' linting options даже после установки непосредственно из ветки v2.10.0 на GitHub. Ошибка исчезает, когда я вообще опускаю esversion . Вот фрагмент из моего .jshintrc , сейчас:

"esnext": true,
"unstable": {
  "objspreadrest": true
},

Идея этой ошибки на самом деле заключается в том, что «не используйте одновременно «esversion» и «esnext» (или «es3», или «es5»), афаю.

Текст мог бы быть более ясным, но цель ошибки, по-видимому, заключается в том, чтобы «выдавать предупреждения, чтобы в конечном итоге мы могли удалить эти параметры, и люди просто использовали« esversion »).

@jugglinmike Как вы думаете, мы должны просто сделать это нефатальной ошибкой или иным образом разрешить явную «esversion» переопределять параметры устаревшей версии?

@chaddjohnson Эта ветвь доступна для обеспечения прозрачности и обеспечения совместной работы. Вы, конечно, можете запускать любой код в этом проекте, но, пожалуйста, поймите, что мы не одобряем использование невыпущенного кода, потому что у нас нет пропускной способности для его поддержки.

@caitp Я бы предпочел запретить двусмысленность, а не пытаться ее интерпретировать. Я поделюсь более подробной информацией в ответ на ваш запрос на вытягивание.

https://github.com/jshint/jshint/issues/2991#issuecomment-349636400

[jshint] Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned). (E059)

https://github.com/jshint/jshint/issues/2991#issuecomment -396695974

[jshint] Bad option: 'unstable'. (E001)

@jugglinmike Тогда вы хотите сказать, что сейчас невозможно использовать jshint?

Вовсе нет, @NatoBoram. Я не рекомендую использовать неопубликованные версии проекта.

Хм, как кто-нибудь нашел решение для:

Несовместимые значения параметров линтинга esversion и esnext. (проверено 0%). (Е059)

любое разрешение этого? когда jshint будет поддерживать ПОСЛЕДНИЕ синтаксисы?

Что-нибудь об этом? Я действительно ценю этот инструмент, но необходимость засорять мои сценарии комментариями «игнорировать» — это худшее.

У кого-нибудь есть время посмотреть на это? Я использую 2.9.7, которая является последней версией jshint, внутри редактора Atom, и мой код приложения React Native изобилует синтаксическими ошибками, связанными с оператором распространения в литералах объектов. Установка "esnext":true в .jshintrc не помогает. Инструмент отказывается работать, когда установлены оба параметра "esnext":true и "esversion":6.

Если у кого-нибудь есть обходной путь, который работает прямо сейчас, не могли бы вы опубликовать его?

Поддержка этой функции будет доступна в JSHint версии 2.10.0, которую мы планируем выпустить в начале следующего года .неделя . Я отмечу эту проблему как «решенную», как только она будет опубликована.

Мы только что выпустили поддержку для объектов rest/spread в JSHint версии 2.10.0 .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги