Игнорировать переменную camelcase в JSHint

Имея немного проблемы с JShint и следующей строкой кода.

$location.path('map-' + map.id + '/venue-' + map.attributes.default_venue.value);

Я получаю сообщение об ошибке, Identifier 'default_venue' is not in camel case. Это не будет проблемой нормально, но у меня нет никакого контроля над именем переменной - оно было введено через API JSON.

Есть ли способ подавить эту проблему как для затронутых переменных, так и для строк, в которых они появляются?

Извините, если это было задано раньше, я уверен, что это, должно быть, было, но я не могу найти решение.

Ответ 1

JSHint подчиняется директивам на уровне функций, поэтому вы можете найти закрывающую функцию и добавить к ней параметр camelcase. Вот пример:

/*jshint camelcase: true */

var not_camel_case = 1; // Warns

function example() {
  /*jshint camelcase: false */
  var not_camel_case = 2; // Does not warn
}

Ответ 2

В соответствии с JSHint Docs вы можете создать файл конфигурации в том же каталоге, что и .jshintrc, или любой каталог в корневой каталог. Я просто установил, что использовал это:

  {
    "camelcase": false
  }

Здесь есть множество других вариантов: http://jshint.com/docs/options/#camelcase

Ответ 3

Я помещаю имя свойства, исходящего из api в отдельной строке. Например:.

var defaultVenueAttributeKey = 'default_venue';
$location.path('map-' + map.id + '/venue-' + map.attributes[defaultVenueAttributeKey].value);

Это немного более подробный, но вы можете группировать все имена свойств, исходящие из вашего API вместе, а затем легче реагировать на API.

Ответ 4

Принятый ответ /*jshint camelcase: true */ не работал у меня. Я все еще получал ошибки.

Я смотрю docs и нашел это решение, которое сработало для меня:

/*eslint camelcase: ["error", {properties: "never"}]*/

Ответ 5

Попробуйте что-нибудь вроде этого. Хотя злой, он будет работать.

var foo;
$.each( jsonArray, function ( i, value ) {
    if ( i === 'array_element' ) {
        foo = value;
    }
});