javascript - 保护条款的 ESLint

标签 javascript eslint

是否有 ESLint 规则来检测不使用保护子句时是否可以检测到代码? 这与这篇文章有关- https://elliotekj.com/2016/12/02/guard-clauses-in-javascript/

例如,这应该一个警告:

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 是否是检测/纠正这种代码风格实现的正确工具?

谢谢。

附言。我确实做了一些研究,但没有找到与我在 ESLint Rules 上的特定需求相关的任何规则。 .现在,我只是一名 JS 开发新手,想知道在深入编写自己的规则之前我是否遗漏了任何应该检查的内容。

最佳答案

没有 ESLint 规则可以捕获它(直到 v5.8.0)。您自己提供了来源:)

我完全支持保护条款,但我认为这不会很快出现,因为它非常依赖于上下文并且很难在所有情况下正确识别它。

查看代码片段的旁注,如果您想遵循 ESLint 最佳实践,在您不希望返回值的情况下,您应该返回未定义/无效而不是 null(检查 https://eslint.org/docs/rules/consistent-return#require-return-statements-to-either-always-or-never-specify-values-consistent-return)

关于javascript - 保护条款的 ESLint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49594497/

相关文章:

javascript - 无法加载配置 "react"以从

Java AccessControlException 仅适用于 LiveConnect

javascript - 单击内部按钮或 div 本身时显示更多 div 内容文本

javascript - 使用元数据 API 迭代 Google Drive 文件

eslint - ESLint的max-len设置选项中的第一个变量是什么?

javascript - 括号中的 JSLint 表示音频未定义,但不会提示图像

reactjs - 导入路径不能以 '.tsx' 扩展名结尾

javascript - React Native 中的 ".eslintrc.js"是什么?

javascript - 无法从前端应用程序调用 Algolia 分析 API?

javascript - Angular 表达式未在 View 中更新