How to return void in JsDoc?
Is there a specified way to declare a method or a function to return void in JsDoc? Currently I am in the belief that void
is the default return value, and other return values must be specifically provided:
/**
* @return {Integer} The identifier for ...
*/
Solution 1:
Closure Compiler
According to the documentation of Google's Closure Compiler if nothing is being returned, the @return annotation should be omitted.
If there is no return value, do not use a @return tag.
Source: https://developers.google.com/closure/compiler/docs/js-for-compiler#tags
jsdoc-toolkit
However further documentation also states that the returnType and returnDescription are optional parameters.
returnType - Optional: the type of the return value.
returnDescription - Optional: any additional description.
Source: https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns
Summary
You could either leave out the return annotation or include it without any parameters.
Solution 2:
I don't believe you have to choose from a set of types in JsDoc... you can use any type name you wish (the curly braces indicate it's a type), so you can simply do:
@return {Void}
Although, this is probably more correct for JavaScript:
@return {undefined}
Solution 3:
Looking at the ESlint docs they use
@returns {void}
Source: http://eslint.org/docs/rules/valid-jsdoc
Since I need to provide an @returns
for each function to pass tests in order to push code for certain projects this is required in my case.
Solution 4:
If you need to say out loud that nothing is returned, you can say that in the free-form description. This is useful to clarify situations where a user might expect something to be returned. Of course proper naming of the function and the parameters should alone make the expected return type apparent, but it might not always be possible.
/**
* This is a funny function. Returns nothing.
* @param {string} a joke.
*/
var funny = function (joke) {
console.log(joke);
};