Coffeelint говорит, что у меня есть скрытые парни?
Coffeelint говорит мне, что у меня есть скрытые паренсы. Я пытаюсь найти причину этой ошибки.
#309: Implicit parens are forbidden.
Вот мой код:
((factory) ->
if typeof module == 'object' and module.exports
module.exports = factory
else
factory(Highcharts)
return
)(Highcharts) ->
...
if seriesTypes.map
seriesTypes.map::exportKey = 'name'
if seriesTypes.mapbubble
seriesTypes.mapbubble::exportKey = 'name'
if seriesTypes.treemap
seriesTypes.treemap::exportKey = 'name'
return
###The entire block over code is one function.
Кто-нибудь даст этому шанс?
1 ответ
Решение
Я думаю, что есть проблема с вашим кодом. Посмотрите на сгенерированный JS:
(function(factory) {
if (typeof module === 'object' && module.exports) {
module.exports = factory;
} else {
factory(Highcharts);
}
})(Highcharts)(function() {
...
});
Как первая функция возвращает undefined
при попытке вызова произошла ошибка undefined
как функция.
На самом деле no_implicit_parens предназначен для:
# This rule prohibits implicit parens on function calls.
# Some folks don't like this style of coding.
myFunction a, b, c
# And would rather it always be written like this:
myFunction(a, b, c)
С этой опцией вы должны заключить в скобки любой список аргументов любого вызова функции.
Чтобы ваш код работал, вы можете сделать следующее:
((factory) ->
...
)(Highcharts(->
...
))
Эти скобки вокруг функции обратного вызова делают свое дело. Но, как я уже сказал, я уверен, что есть проблема с вашим кодом, и исправление на самом деле не имеет особого смысла для меня:)