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 demo
su IDE, debería ver ambos optional1
y optional2
aparecer como opcional ahora. En VSCode que se indica ?
después del nombre del argumento (notación TypeScript). Si elimina = undefined
de optional2
, verá que solo optional1
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.