De acordo com o wiki JSDoc para @param, você pode indicar que um @param é opcional usando
/**
@param {String} [name]
*/
function getPerson(name) {
}
e você pode indicar um parâmetro embutido usando
function getPerson(/**String*/ name) {
}
E posso combiná-los da seguinte forma, o que funciona bem.
/**
@param [name]
*/
function getPerson(/**String*/name) {
}
Mas gostaria de saber se existe uma maneira de fazer tudo inline, se possível.
javascript
google-closure-compiler
jsdoc
Studgeek
fonte
fonte
Depois de alguma escavação, descobri que eles também estão ok
Apenas um pouco mais atraente do que visualmente
function test(/**String=*/arg) {}
fonte
Eu encontrei uma maneira de fazer isso usando expressões do tipo Google Closure Compiler . Você coloca um sinal de igual após o tipo assim:
function test(/**String=*/arg) {}
fonte
Caso você esteja usando comentários do tipo embutido nos argumentos da função e esteja se perguntando como marcar um argumento da função como opcional nessa notação, descobri que apenas atribuir valores padrão aos argumentos opcionais funcionou. Se quiser que o padrão seja,
undefined
você também deve defini-lo explicitamente, caso contrário, o argumento não será marcado como opcional (mesmo se for precedido por argumentos já opcionais):Se você passar o mouse sobre
demo
seu IDE, deverá ver ambosoptional1
eoptional2
aparecendo como opcionais agora. Em VSCode, que é indicado por?
após o nome do argumento (notação TypeScript). Se você remover= undefined
deoptional2
, verá apenasoptional1
ser opcional, o que obviamente é um absurdo, então o valor padrão aqui deve ser explícito como eu aludi no parágrafo acima.fonte