Игнорировать переменную 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;
}
});