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


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

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

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

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

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

5 64

5 ответов:

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

/*jshint camelcase: true */

var not_camel_case = 1; // Warns

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

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

  {
    "camelcase": false
  }

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

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

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

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

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

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

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

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

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