¿Cómo devolver vacío en JsDoc?


81

¿Existe una forma específica de declarar un método o una función para devolver vacío en JsDoc? Actualmente, creo que voides el valor de retorno predeterminado y se deben proporcionar específicamente otros valores de retorno:

/**
 * @return {Integer} The identifier for ...
 */

eslint.org/docs/rules/valid-jsdoc dice @returns {void}Ahhh alguien ya lo mencionó: stackoverflow.com/a/45450508/470749
Ryan

Respuestas:


93

No creo que tenga que elegir entre un conjunto de tipos en JsDoc ... puede usar cualquier nombre de tipo que desee (las llaves indican que es un tipo), por lo que simplemente puede hacer:

@return {Void}

Aunque, esto probablemente sea más correcto para JavaScript:

@return {undefined}

puede ser también @returns {void}?
Hellboy

8
@Eugene nullno es necesariamente lo mismo queundefined
BadHorsie

6
@return {Void}arroja una advertencia de inspección de código en IntelliJ IDE @return {undefined}y @return {void}no lo hace.
Shanimal

4
nullnunca es lo mismo que undefined. Cuando algo es nulo, todavía está definido pero sin valor. Indefinido es, bueno, no definido :-)
Magnus Eriksson

3
Las especificaciones de Ecmascript enumeran los tipos de idiomas. El valor devuelto por el voidoperador es undefined. El nombre del tipo de valor undefinedes Undefined, aunque se typeof undefinedevalúa como "undefined". El nombre Voidno está definido en las especificaciones de Ecmascript.
Aaron Mansheim

104

Compilador de cierre

De acuerdo con la documentación del compilador de cierre de Google, si no se devuelve nada, se debe omitir la anotación @return.

Si no hay un valor de retorno, no use una etiqueta @return.

Fuente: https://developers.google.com/closure/compiler/docs/js-for-compiler#tags

jsdoc-toolkit

Sin embargo, la documentación adicional también establece que returnType y returnDescription son parámetros opcionales.

returnType - Opcional: el tipo de valor de retorno.

returnDescription - Opcional: cualquier descripción adicional.

Fuente: https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns

Resumen

Puede omitir la anotación de devolución o incluirla sin ningún parámetro.


10
Esta respuesta es en realidad mejor que la aceptada. Si su función no devuelve un resultado, no debe decir que devuelve, undefinedya que esto ya está implícito en Javascript y puede causar confusión a quien lea sus documentos.
Lucio Paiva

2
No, no estoy de acuerdo y digo que no es una buena idea. Cuando falta algo, no sabes si fue intencional o no. Al ser explícito sobre el tipo de devolución, incluso cuando se undefinedobliga a declarar su intención, también es bueno cuando lo lee más tarde. Solo para aclarar, no estoy diciendo que uno deba incluir una declaración JS inútil, estoy diciendo que siempre se debe incluir una @returnsdeclaración JSDoc (estoy en contra del código inútil, pero no en contra de los comentarios "inútiles").
Mörre

En mi opinión, tiene sentido especificar un tipo de retorno de indefinido si es posible que su función o método devuelva cualquier otro valor, en cuyo caso obtiene algo como esto:@returns {Array|undefined} - returns array if operation successful, otherwise returns undefined
GrayedFox


1

Si necesita decir en voz alta que no se devuelve nada, puede decirlo en la descripción de forma libre . Esto es útil para aclarar situaciones en las que un usuario puede esperar que se le devuelva algo. Por supuesto, el nombre adecuado de la función y los parámetros debería hacer aparente el tipo de retorno esperado, pero no siempre es posible.

/**
 * This is a funny function. Returns nothing.
 * @param {string} a joke.
 */
var funny = function (joke) {
  console.log(joke);
};
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.