Javascript 如何使用JSDoc在某些情况下记录可变数量的参数

Javascript 如何使用JSDoc在某些情况下记录可变数量的参数,javascript,jsdoc,Javascript,Jsdoc,我的函数只有在第一个参数是!=3。如何使用JSDoc记录这种行为 getTimeframe: function(timeframe, since, until) { /* * @param {Number} timeframe Can be 0, 1, 2 or 3 * @param {Number} since Optional when timeframe !== 3 * @param {Number} until Optional when timeframe !== 3 */ .

我的函数只有在第一个参数是
!=3
。如何使用JSDoc记录这种行为

getTimeframe: function(timeframe, since, until) {
/*
 * @param {Number} timeframe Can be 0, 1, 2 or 3
 * @param {Number} since Optional when timeframe !== 3
 * @param {Number} until Optional when timeframe !== 3
 */
...

}

据我所知,以下是目前使用JSDOC3所能做到的最好的方法。关键是要同时使用
@来指示函数具有多个签名。然后在描述中详细说明一个签名何时适用,另一个签名何时适用,等等

/**
 * When the <code>timeframe</code> parameter is not 3...
 *
 * @param {number} timeframe Can be 0, 1, 2.
 * @param {number} [since] blah.
 * @param {number} [until] blah.
 *
 * @also
 *
 * When the <code>timeframe</code> is 3, then...
 *
 * @param {number} timeframe Set to 3.
 */
function getTimeframe(timeframe, since, until) {

}
这将为
getTimeframe
函数创建两个签名


(注意:在上述情况下,我更喜欢使用
number
而不是
number
,因为
number
的1个实例(例如)是
false
。另一方面
typeof 1
“number”
,而
number(1)
的类型也是
“number”

您使用的是什么版本的jsdoc?使用方括号作为可选参数。@Louis我使用的是jsdoc 3,没有生成任何文档,只是为了更好地理解it@torazaburo我知道方括号,我想确定的是当某些参数仅在某些情况下是可选的时,正确的语法是什么,也不总是可选的。谢谢你澄清这一点,这正是我想要的。