Как исправить ошибку, поскольку неявные скобки запрещены инструментом проверки кофе-линта?
У меня есть простой код CoffeeScript, который хорошо работает при интеграции с jQuery. Но coffee-lint
инструмент проверки кода показывает следующую ошибку
coffeelint file.coffee
Скрытые скобки запрещены.
Мой код
$ ->
$("#selector").dialog
modal: true
Что может быть причиной этой ошибки?
2 ответа
Это будет минимальное изменение, которое вам нужно. Я рекомендую добавить ()
для вызова функции, но это правило не заботится о них.
$ ->
$("#selector").dialog {
modal: true
}
modal: true
подразумевается быть объектом. Чтобы продемонстрировать, почему это правило полезно включить, допустим, у вас был очень похожий код, который принимает параметр.
makeDialog = (foo) ->
$("#selector").dialog
modal: true,
foo: foo,
Этот код выглядит хорошо, он даже правильно компилируется. Но в какой-то момент вы заметили, что foo: foo
можно упростить
makeDialog = (foo) ->
$("#selector").dialog
modal: true,
foo,
Теперь ваш код не работает. CoffeeScript правильно догадался, что modal: true
это свойство неявного объекта, который является первым параметром dialog
, но он не знает, foo
является вторым свойством этого объекта или вторым параметром функции. Это заканчивается компиляцией к этому:
return $("#selector").dialog({ modal: true }, foo);
У вас есть файл конфигурации coffeelint? Если да, проверьте, что политика no_implicit_braces не была изменена (по умолчанию игнорируется).