Answers:
经过一番挖掘,我发现这些还可以
/**
* @param {MyClass|undefined}
* @param {MyClass=}
* @param {String} [accessLevel="author"] The user accessLevel is optional.
* @param {String} [accessLevel] The user accessLevel is optional.
*/
只是比在视觉上更具吸引力 function test(/**String=*/arg) {}
我找到了一种使用Google Closure Compiler 类型表达式执行此操作的方法。您在类型之后加上等号:
function test(/**String=*/arg) {}
如果您在函数参数上使用内联类型注释,并且想知道如何在该表示法中将函数参数标记为可选,我发现只需将默认值分配给可选参数即可。如果您希望使用默认值,则undefined
还必须对其进行显式设置,否则该参数将不会被标记为可选(即使它前面已经带有可选参数):
function demo(
/** @type {String} */ mandatory,
/** @type {Number} */ optional1 = 0,
/** @type {Number} optional2 = undefined,
)
如果您将鼠标悬停demo
在IDE中,则应该同时看到两者optional1
并optional2
显示为可选。在VSCode中,由?
参数名称(TypeScript表示法)后的表示。如果= undefined
从中删除,optional2
您将只会看到optional1
可选的内容,这当然是胡说八道,因此此处的默认值必须是明确的,就像我在上一段中提到的那样。