De acuerdo con la wiki de JSDoc para @param , puede indicar que un @param es opcional usando
/**
@param {String} [name]
*/
function getPerson(name) {
}
y puede indicar un parámetro en línea usando
function getPerson(/**String*/ name) {
}
Y puedo combinarlos como el siguiente, que funciona bien.
/**
@param [name]
*/
function getPerson(/**String*/name) {
}
Pero me gustaría saber si hay una manera de hacerlo todo en línea si es posible.
javascript
google-closure-compiler
jsdoc
studgeek
fuente
fuente
Después de investigar un poco, descubrí que también están bien
Solo un poco más atractivo visualmente que
function test(/**String=*/arg) {}
fuente
Encontré una manera de hacer esto usando expresiones de tipo Google Closure Compiler . Pones un signo igual después del tipo así:
function test(/**String=*/arg) {}
fuente
En caso de que esté utilizando comentarios de tipo en línea en argumentos de función y se pregunte cómo marcar un argumento de función como opcional en esa notación, descubrí que simplemente asignar valores predeterminados a los argumentos opcionales funcionaba. Sin embargo, si desea que el valor predeterminado sea
undefined
, debe establecerlo explícitamente también; de lo contrario, el argumento no se marcará como opcional (incluso si está precedido por argumentos ya opcionales):Si pasa el cursor sobre
demo
su IDE, debería ver ambosoptional1
yoptional2
aparecer como opcional ahora. En VSCode que se indica?
después del nombre del argumento (notación TypeScript). Si elimina= undefined
deoptional2
, verá que solooptional1
es opcional, lo cual, por supuesto, no tiene sentido, por lo que el valor predeterminado aquí debe ser explícito, como mencioné en el párrafo anterior.fuente