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):
function demo(
/** @type {String} */ mandatory,
/** @type {Number} */ optional1 = 0,
/** @type {Number} optional2 = undefined,
)
Se você passar o mouse sobre demo
seu IDE, deverá ver ambos optional1
e optional2
aparecendo como opcionais agora. Em VSCode, que é indicado por ?
após o nome do argumento (notação TypeScript). Se você remover = undefined
de optional2
, verá apenas optional1
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.