ESLint 的 "consistent return" 规则的价值主张是什么?
What's the value proposition for ESLint's "consistent return" rule?
对于不需要显式 return 任何东西的函数,总是 return 值 ("undefined") 有什么价值?
为什么这是一条规则,它会捕获哪些错误?
您可以阅读 ESLint 的 "consistent return" 规则 here(回答 "what",而不是 "why")。
您可以在此处阅读有关堆栈溢出原因的推测性分析 javascript functions implicitly returns undefined。
有些语言区分函数和过程。在类 C 语言中情况并非如此,但以这种方式设计子例程仍然是一个好主意。
linter 不想让你 "always returning something"。它只是告诉您,如果您设计一个 函数 (与 过程 相对),它必须 return 任何有意义的东西大小写(理想情况下,所有 returned 值必须属于同一类型)。
示例:
function is_visible(object)
是一个函数,它应该 return 一个值(在这种情况下是一个布尔值)并且可以在表达式中使用。另一边
function make_visible(object)
是一个过程,它不应该 return 任何东西并且不能在表达式中使用 - 它始终是一个语句。
这样的设计(以及相关的 linter 警告)极大地有助于防止像这样的错误(取自一些随机的互联网页面):
对于不需要显式 return 任何东西的函数,总是 return 值 ("undefined") 有什么价值?
为什么这是一条规则,它会捕获哪些错误?
您可以阅读 ESLint 的 "consistent return" 规则 here(回答 "what",而不是 "why")。
您可以在此处阅读有关堆栈溢出原因的推测性分析 javascript functions implicitly returns undefined。
有些语言区分函数和过程。在类 C 语言中情况并非如此,但以这种方式设计子例程仍然是一个好主意。
linter 不想让你 "always returning something"。它只是告诉您,如果您设计一个 函数 (与 过程 相对),它必须 return 任何有意义的东西大小写(理想情况下,所有 returned 值必须属于同一类型)。
示例:
function is_visible(object)
是一个函数,它应该 return 一个值(在这种情况下是一个布尔值)并且可以在表达式中使用。另一边
function make_visible(object)
是一个过程,它不应该 return 任何东西并且不能在表达式中使用 - 它始终是一个语句。
这样的设计(以及相关的 linter 警告)极大地有助于防止像这样的错误(取自一些随机的互联网页面):