2016-02-21 58 views
1

內部變量是否有辦法有JSDOC沒有功能之前,使用@namespace註釋的功能裏面顯示的變量?JSDOC:如何文檔的功能

我做了一個小測試對象,但它只會顯示最後一個函數的內部變量k,它被聲明爲一個名稱空間。我想到了用@memberof!註釋和詳細@name註釋將顯示在下面稱爲DIFF第二種方法內可變。我運行的命令jsdoc3與選項--access「所有」 --explain

下面是測試對象的代碼:

(function(){ 
    "use strict"; 
    /** 
    * @namespace 
    * @type {{}} 
    */ 
    window.myFunctions = {}; 
    /** 
    * Return the sum 
    * @param {number} i 
    * @param {number} j 
    * @return {number} 
    */ 
    window.myFunctions.sum = function(i, j) { 
     /** @type {number} */ 
     var k = i + j; 
     return k; 
    }; 
    /** 
    * Return the difference i - j 
    * @param {number} i 
    * @param {number} j 
    * @return {number} 
    */ 
    window.myFunctions.diff = function(i, j) { 
     /** 
     * @inner 
     * @memberof! window.myFunctions.diff 
     * @type {number} 
     * @name window.myFunctions.diff~k 
     */ 
     var k = i - j; 
     return k; 
    }; 
    /** 
    * Return the product 
    * @namespace 
    * @param {number} i 
    * @param {number} j 
    * @return {number} 
    */ 
    window.myFunctions.multiply = function(i, j) { 
     /** @type {number} */ 
     var k = i * j; 
     return k; 
    } 
}); 

回答

1

您需要使用@module@exports標籤。

documentation

如果你定義AMD模塊,它返回一個對象的功能 文字,使用@exports標籤來記錄模塊的名稱。 JSDoc 會自動檢測到該對象的屬性是 模塊成員。

所以,你的代碼示例可以標記像這樣:

/** 
* functions module. 
* @module my/functions 
*/ 
(function(){ 
    "use strict"; 
    /** 
    * @namespace 
    * @type {{}} 
    * @exports my/functions 
    * @name myFunctions 
    */ 
    window.myFunctions = {}; 
    /** 
    * Return the sum 
    * @param {number} i 
    * @param {number} j 
    * @return {number} 
    * @exports my/functions 
    * @name sum 
    */ 
    window.myFunctions.sum = function(i, j) { 
     /** 
     * @type {number} 
     * @exports my/functions 
     * @name k 
     */ 
     var k = i + j; 
     return k; 
    }; 
    /** 
    * Return the difference i - j 
    * @param {number} i 
    * @param {number} j 
    * @return {number} 
    * @exports my/functions 
    * @name diff 
    */ 
    window.myFunctions.diff = function(i, j) { 
     /** 
     * @inner 
     * @memberof! window.myFunctions.diff 
     * @type {number} 
     * @name window.myFunctions.diff~k 
     * @exports my/functions 
     */ 
     var k = i - j; 
     return k; 
    }; 
    /** 
    * Return the product 
    * @namespace 
    * @param {number} i 
    * @param {number} j 
    * @return {number} 
    * @exports my/functions 
    * @name multiply 
    */ 
    window.myFunctions.multiply = function(i, j) { 
     /** 
     * @type {number} 
     * @exports my/functions 
     * @name k 
     */ 
     var k = i * j; 
     return k; 
    } 
});