eslint 或 jslint 中的 Javascript lambda/匿名函数长度警告
Posted
技术标签:
【中文标题】eslint 或 jslint 中的 Javascript lambda/匿名函数长度警告【英文标题】:Javascript lambda/anonymous function length warning in eslint or jslint 【发布时间】:2017-07-28 00:11:30 【问题描述】:对于 javascript,是否有 eslint(甚至 jslint)设置来针对给定长度(例如:超过 5 行)的匿名/lambda 函数(尤其是回调)发出警告?
我正在尝试查看是否有一种方法可以使用 lint 来强制执行比这更清晰的代码:
...
var a = foo(b, function(c, cb1)
// dozens of lines of code
cb1(d, function(e, cb2)
// dozens of lines of code
cb2(f, function(g, cb3)
// dozens of lines of code
cb3(...);
// dozens of lines of code
);
);
);
...
我知道嵌套函数的数量是有限的,但我认为这些函数的长度也可以尽可能短。
【问题讨论】:
max-depth 或 max-nested-callbacks 规则可能会有所帮助。 正如我所提到的,我知道这些并使用它们;我正在寻找也限制长度的东西,因为它可能会变得不可读/不可调试,只有 3 深的嵌套...... 【参考方案1】:您可以使用 eslint max-statements 选项来强制每个函数执行一定数量的语句。
Jordan 提到的 max-depth 和 max-nested-callbacks 对于防止嵌套条件和回调太深很有用。您可能还对限制 complexity 感兴趣,这意味着一个函数可以有多少不同的结果。
【讨论】:
我想没有什么可以限制“行”,但无论如何使用最大语句比行更有意义;再加上其他提到的选项就足够了。以上是关于eslint 或 jslint 中的 Javascript lambda/匿名函数长度警告的主要内容,如果未能解决你的问题,请参考以下文章