如何在JsDoc中返回void?

Tow*_*wer 71 javascript ide jsdoc

是否有一种指定的方法来声明一个方法或函数在JsDoc中返回void?目前我认为这void是默认的返回值,必须专门提供其他返回值:

/**
 * @return {Integer} The identifier for ...
 */
Run Code Online (Sandbox Code Playgroud)

Bre*_*son 97

关闭编译器

根据Google Closure Compiler的文档,如果没有返回任何内容,则应省略@return注释.

如果没有返回值,请不要使用@return标记.

资料来源: https ://developers.google.com/closure/compiler/docs/js-for-compiler#tags

jsdoc的工具包

但是,进一步的文档还指出returnType和returnDescription是可选参数.

returnType - 可选:返回值的类型.

returnDescription - 可选:任何其他说明.

资料来源: https ://code.google.com/p/jsdoc-toolkit/wiki/TagReturns

摘要

您可以省略返回注释,也可以不带任何参数包含它.

  • 这个答案实际上比接受的答案更好.如果你的函数没有返回结果,你不应该说它返回``undefined``,因为这已经隐含在Javascript中,并且可能会引起混淆,无论谁读你的文档. (9认同)
  • 不,我不同意并说这不是一个好主意。当某些东西丢失时,您不知道它是否是故意的。通过明确返回类型,即使它是“未定义”,您也可以强迫自己陈述您的意图,这在稍后阅读时也很好。澄清一下,我并不是说应该包含无用的 JS 语句,而是说应该始终包含 JSDoc `@returns` 语句(我反对无用代码,但不反对“无用”注释)。 (6认同)
  • IMO 如果您的函数或方法可能返回任何其他值,则指定返回类型 undefined 是有意义的,在这种情况下您会得到如下所示的内容: `@returns {Array|undefined} - 如果操作成功则返回数组,否则返回未定义` (2认同)

Dav*_*ang 79

我不相信你必须在JsDoc中选择一组类型......你可以使用你想要的任何类型名称(花括号表示它是一种类型),所以你可以简单地做:

@return {Void}
Run Code Online (Sandbox Code Playgroud)

虽然,这可能更适合JavaScript:

@return {undefined}
Run Code Online (Sandbox Code Playgroud)

  • @Eugene`null`不一定与`undefined`相同 (7认同)
  • `@return {Void}`在IntelliJ IDE中抛出代码检查警告`@return {undefined}`和`@return {void}`没有. (4认同)
  • null永远与undefined相同。当某些内容为空时,它仍然被定义但没有值。未定义是,未定义:-) (2认同)
  • Ecmascript规范列出了语言的类型.`void`运算符返回的值是`undefined`.值"undefined"的类型名称是"Undefined",即使`typeof undefined`计算为"undefined"`.Ecmascript规范中未定义名称"Void". (2认同)
  • eslint.org/docs/rules/valid-jsdoc - 根据下面的答案应该是“@returns {void}”,而不是“{Void}”,而不是“{undefined}”。由于这是顶级+已接受的答案,您会考虑编辑吗? (2认同)

pri*_*jas 6

查看他们使用的ESlint文档 @returns {void}

资料来源:http://eslint.org/docs/rules/valid-jsdoc

因为我需要提供一个@returnsfor each函数来传递测试以便为某些项目推送代码,所以在我的情况下这是必需的.