ESLint的“一致回报”规则的价值主张是什么?

时间:2016-03-24 19:36:51

标签: javascript eslint

为函数返回一个值(“undefined”)的值是什么,不需要显式返回任何内容?

为什么这是一个规则,它会捕获哪些错误?

你可以阅读有关ESLint的“一致回报”规则here(回答“什么”,而不是“为什么”)。

你可以阅读关于堆栈溢出的原因javascript functions implicitly returns undefined的推测性分析。

1 个答案:

答案 0 :(得分:4)

有些语言区分功能和程序。在C-alikes中并非如此,但以这种方式设计子程序仍然是个好主意。

linter并不希望你总是回复一些东西"。它只是告诉你,如果你设计一个函数(而不是过程),它必须返回任何有意义的东西(理想情况下,所有返回的值必须是相同的类型)。

示例:

function is_visible(object)

是一个函数,它应该返回一个值(在这种情况下是一个布尔值)并且可以在表达式中使用。在另一边

function make_visible(object)

是一个程序,它不应该返回任何内容而不能在表达式中使用 - 它总是一个声明。

这样的设计(以及相关的linter警告)极大地帮助防止这样的错误(取自一些随机网页):

enter image description here