【问题标题】:Javascript lambda/anonymous function length warning in eslint or jslinteslint 或 jslint 中的 Javascript lambda/匿名函数长度警告
【发布时间】: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-depthmax-nested-callbacks 规则可能会有所帮助。
  • 正如我所提到的,我知道这些并使用它们;我正在寻找也限制长度的东西,因为它可能会变得不可读/不可调试,只有 3 深的嵌套......

标签: javascript lambda anonymous-function jslint eslint


【解决方案1】:

您可以使用 eslint max-statements 选项来强制每个函数执行一定数量的语句。

Jordan 提到的 max-depth 和 max-nested-callbacks 对于防止嵌套条件和回调太深很有用。您可能还对限制 complexity 感兴趣,这意味着一个函数可以有多少不同的结果。

【讨论】:

  • 我想没有什么可以限制“行”,但无论如何使用最大语句比行更有意义;再加上其他提到的选项就足够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 2019-03-30
相关资源
最近更新 更多