如何在JsDoc中返回void?


Answers:


92

我不认为您必须从JsDoc中的一组类型中进行选择...您可以使用所需的任何类型名称(花括号指示它是一种类型),因此您可以简单地执行以下操作:

@return {Void}

虽然,这对于JavaScript可能更正确:

@return {undefined}

可能还可以@returns {void}吗?
hellboy 2014年

8
@Eugenenull不一定与undefined
BadHorsie

6
@return {Void}在IntelliJ IDE中引发代码检查警告,@return {undefined}@return {void}不会。
Shanimal

4
nullundefined。当某些内容为空时,它仍然被定义但没有值。未定义的,很好,未定义的:-)
Magnus Eriksson

3
Ecmascript规范列出了语言的类型。void运算符返回的值为undefined。值类型的名称undefinedUndefined,即使typeof undefined计算为"undefined"。名称Void在Ecmascript规范中未定义。
亚伦·曼海姆

104

闭包编译器

根据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

概要

您可以忽略返回注释,也可以不包含任何参数而将其包括在内。


10
这个答案实际上比公认的要好。如果您的函数没有返回结果,则您不应说它返回,undefined因为这已经在Javascript中隐含了,并且可能会使阅读文档的人感到困惑。
Lucio Paiva 2014年

2
不,我不同意并说这不是一个好主意。当缺少某些东西时,您不知道它是否是故意的。即使在返回时也要明确指出返回类型,这undefined迫使您自己声明意图,这在以后阅读时也很有用。只是为了澄清,我并不是说应该包含一个无用的JS语句,而是要始终包含一个JSDoc@returns语句(我反对无用的代码,但不反对“无用的”注释)。
Mörre

IMO如果您的函数或方法有可能返回任何其他值,则将返回类型指定为undefined是有意义的,在这种情况下,您将获得如下所示的信息:@returns {Array|undefined} - returns array if operation successful, otherwise returns undefined
GrayedFox


1

如果您需要大声说什么也没退,可以在自由格式说明中说出来。这对于阐明用户可能期望返回某些商品的情况很有用。当然,正确地命名函数和参数应该使预期的返回类型显而易见,但并非总是可能的。

/**
 * This is a funny function. Returns nothing.
 * @param {string} a joke.
 */
var funny = function (joke) {
  console.log(joke);
};
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.