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/匿名函数长度警告的主要内容,如果未能解决你的问题,请参考以下文章

设置emacs插件flycheck使用jslint eslint

ESLint

ESLint的使用

NodeJs代码扫描工具ESLint

如何使用ESlint

Visual Studio Code 格式化ESlint 的方法