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, undefinedvocê 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 demoseu IDE, deverá ver ambos optional1e optional2aparecendo como opcionais agora. Em VSCode, que é indicado por ?após o nome do argumento (notação TypeScript). Se você remover = undefinedde optional2, verá apenas optional1ser opcional, o que obviamente é um absurdo, então o valor padrão aqui deve ser explícito como eu aludi no parágrafo acima.