2014-09-01 64 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 2014-09-01 16:21:31

+0

使用方括號表示可選參數。 – 2014-09-01 16:31:45

+0

@Louis我正在使用JSDoc 3,不生成任何文檔ATM,只是試圖更好地理解它 – Valentin 2014-09-01 16:49:24

回答

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 2014-09-02 12:11:37

相關問題