是否有 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/