¿Cómo devolver vacío en JsDoc?

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}
David Tang
fuente
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.

Brent Robinson
fuente
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
19

Mirando los documentos de ESlint que usan @returns {void}

Fuente: http://eslint.org/docs/rules/valid-jsdoc

Como necesito proporcionar un @returnspara cada función para pasar las pruebas a fin de impulsar el código para ciertos proyectos, esto es necesario en mi caso.

horario estelarjas
fuente
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);
};
Akseli Palén
fuente