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