如何使用内联JSDoc来指定参数是可选的?

根据@param的JSDoc wiki,你可以指出@param是可选的

/** @param {String} [name] */ function getPerson(name) { } 

你可以使用内联参数来表示一个参数

 function getPerson(/**String*/ name) { } 

我可以像下面这样将它们组合起来,这很好。

 /** @param [name] */ function getPerson(/**String*/name) { } 

但是我想知道是否有办法在可能的情况下全部内联。

经过一些挖掘,我发现这些也是好的

 /** * @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) {}略胜一筹function test(/**String=*/arg) {}

从官方文件 :

可选参数

一个名为foo的可选参数。

 @param {number} [foo] // or: @param {number=} foo 

一个可选参数foo,默认值为1。

 @param {number} [foo=1] 

我find了一种使用Google Closure Compiler typesexpression式的方法 。 你在types之后加上一个等号: function test(/**String=*/arg) {}