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我知道方括号,我想确定的是当某些参数仅在某些情况下是可选的时,正确的语法是什么,也不总是可选的。谢谢你澄清这一点,这正是我想要的。