2015-10-24 3 views
0

У меня есть конструктор X для создания объекта. Позже в файле я добавляю несколько методов через X.prototype.method = function() {...}. Хотя я понимаю, что это оператор присваивания, он выглядит и действует как объявление функции, которое не требует точки с запятой.Подавление jshint "error"

gulp jshint настаивает на том, что недостающая точка с запятой является ошибкой и что она должна быть записана как X.prototype.method = function() {...};. Он генерирует ошибку, а не предупреждение, которое я мог бы подавить с помощью директивы -W ###.

Есть ли способ подавить эту ошибку? Я понимаю, что это нит, и я могу легко «исправить» код, но я предпочитаю более чистый стиль.

ответ

2

Пожалуйста, укажите точку с запятой в свой код. Они должны сделать заявление. Если вы устанавливаете функцию переменной, это утверждение. Если вы объявляете функцию, она НЕ является оператором и, следовательно, не получает точку с запятой.

Невозможно просто включить точки с запятой в операциях var = function(). Единственное, что вы можете сделать, это включить вставки с запятой на весь файл. Поместите этот комментарий вверху ваших скриптов:

/*jshint asi: true*/ 

asi означает, что допускается использование точки с запятой.

+0

Я принимаю это, потому что он отвечает на мой вопрос двумя способами. Во-первых, нет способа делать то, что я прошу с помощью JSHint, как есть. Во-вторых, 'asi: true', дает мне метод кувалды, чтобы получить то, что я хочу. Он делает больше, чем я хочу, но это все равно лучший ответ, который можно получить, как работает JSHint. Первый абзац не нужен - он повторил то, что я уже задал в вопросе (с добавлением просьбы указать, например, точки с запятой, которые я явно не хотел). – bmacnaughton

1

JSHint прямо в этом. Вы должны добавить конечную точку с запятой в оператор присваивания. Однако JavaScript принимает код без точки с запятой. Один из способов решить вашу проблему - отключить проверку с запятой вообще с помощью опции asi (http://jshint.com/docs/options/#asi).

+0

Неправильное использование. В объявлении конечная точка с запятой не требуется, и, по сути, JSHint не жалуется на это. См. Http://ecma262-5.com/ELS5_HTML.htm#Section_13. Поэтому 'function xyzzy() {...}' не требует точки с запятой и не генерирует сообщение об ошибке. Это необходимо в моем случае, потому что это не просто объявление функции, это оператор присваивания, где назначаемое значение является объявляемой функцией. – bmacnaughton

+0

Да, это необходимо только для заданий. Я написал заявление вместо назначения. Thx для подсказки. –

Смежные вопросы