ESLint for Guard Clauses

时间:2018-04-01 03:24:42

标签: javascript eslint

是否有ESLint规则来检测代码是否可以在未使用保护条款时被检测到? 这与此后https://elliotekj.com/2016/12/02/guard-clauses-in-javascript/

有关

例如,这应该 HAVE 警告:

function doSomething(obj) {
  if(obj) {
    console.log('I did something');
  }
  return null;
}

这应该有 NO 警告

function doSomething(obj) {
  if(!obj) {
    return null;
  }
  console.log('I did something');
}

我更喜欢后者。请不要评论“自以为是”的评论。这个问题的方面。我只想知道是否有ESLint特定规则或类似我可以使用。

或者ESLint是否是检测/纠正这种代码风格执行的正确工具?

谢谢。

PS。我确实做了一些研究,并没有找到任何与我ESLint Rules的具体需求相关的规则。现在,我只是一个新手JS开发人员,我想知道在我更深入地编写自己的规则之前是否会错过任何我应该检查的内容。

1 个答案:

答案 0 :(得分:0)

没有ESLint规则可以捕获该问题(最高v5.8.0)。您自己提供了来源:)

我全神贯注于保护条款,但我认为这不是很快就会出现的功能,因为它非常依赖于上下文,并且很难在所有情况下正确识别它。

通过查看代码段的注释,如果您想遵循ESLint最佳实践,则在不希望返回值的情况下,应返回undefined / void而不是null(请检查https://eslint.org/docs/rules/consistent-return#require-return-statements-to-either-always-or-never-specify-values-consistent-return