2014-09-01 3 views
2

У меня есть что-то вроде этого, где моя функция принимает только второй и третий параметры, когда первый из них равен != 3. Как я могу документировать это поведение с помощью JSDoc?Как документировать переменное число параметров в определенных ситуациях с 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 
*/ 
... 

} 
+0

Какой версии JSDoc являются вы используете? – Louis

+0

Используйте квадратные скобки для дополнительных параметров. – 2014-09-01 16:31:45

+0

@Louis Я использую JSDoc 3, не создавая какой-либо банкомат docs, только пытаясь лучше понять его. – Valentin

ответ

3

Насколько я знаю следующее лучшее, что вы можете себе сделать с JSDoc 3. Ключ использовать @also, чтобы указать, что функция имеет более чем одну подпись. Тогда у вас есть заклинание в вашем описании, когда одна подпись относится и когда другой относится и т.д.

/** 
* 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 в случае, как и выше, потому что 1 instanceof Number (например) является false С другой стороны typeof 1 является "number" и typeof Number(1) также "number".).

+0

Спасибо, что поняли, что это именно то, что я искал. – Valentin

Смежные вопросы