Якщо ви використовуєте вбудовані коментарі до аргументів функції і вам цікаво, як позначити аргумент функції як необов'язковий у цій нотації, я виявив, що просто присвоєння значень за замовчуванням необов'язкові аргументи працювали. Якщо ви хочете бути типовим, undefined
вам слід встановити це явно, інакше аргумент не буде позначений як необов'язковий (навіть якщо йому передують вже необов’язкові аргументи):
function demo(
/** @type {String} */ mandatory,
/** @type {Number} */ optional1 = 0,
/** @type {Number} optional2 = undefined,
)
Якщо ви наведіть курсор миші на demo
IDE, ви маєте побачити обидва optional1
та optional2
відображатись як необов’язкові зараз. У VSCode, який позначається ?
після імені аргументу (позначення TypeScript). Якщо ви видалите = undefined
з нього, optional2
ви побачите лише optional1
необов’язковість, що, звичайно, є нісенітницею, тому значення за замовчуванням тут повинно бути явним, як я нагадав у наведеному вище абзаці.