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):
function demo(
/** @type {String} */ mandatory,
/** @type {Number} */ optional1 = 0,
/** @type {Number} optional2 = undefined,
)
Si pasa el cursor sobre demosu IDE, debería ver ambos optional1y optional2aparecer como opcional ahora. En VSCode que se indica ?después del nombre del argumento (notación TypeScript). Si elimina = undefinedde optional2, verá que solo optional1es 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.