2016-04-28 23 views
0

我有一個包含多個方法的對象,並且是一個類的成員。我將如何用JSDoc記錄這個?如何在JSDoc中記錄深度大於2的符號?

這是我的嘗試。記錄了這個SomeClass#helperFunctions,但是它的兩個方法都被省略了。

/** 
 
* @class SomeClass 
 
* @param name 
 
*/ 
 
var SomeClass = function(name) {}; 
 

 
/** 
 
* @member SomeClass#helperFunctions 
 
*/ 
 
SomeClass.prototype.helperFunctions = { 
 
    /** 
 
    * @method SomeClass#helperFunctions.doSomething 
 
    * @param {Array} arr 
 
    */ 
 
    doSomething: function(arr) {} 
 
}; 
 

 
/** 
 
* @method SomeClass#helperFunctions.doSomethingElse 
 
* @param {Array} arr 
 
*/ 
 
SomeClass.protype.helperFunctions.doSomethingElse = function(arr) {};

回答

0

這是我能拿出最好的。

我將SomeClass#helperFunctions的方法記錄爲全局變量,然後使用鏈接將它們包含爲SomeClass#helperFunctions的屬性。

/** 
* @class SomeClass 
* @param {String} name 
*/ 
var SomeClass = function(name) {}; 

/** 
* @member SomeClass#helperFunctions 
* @property {Function} doSomething [_doSomething]{@link _doSomething} 
* @property {Function} doSomethingElse [_doSomethingElse]{@link _doSomethingElse} 
*/ 
SomeClass.prototype.helperFunctions = { 
    doSomething: _doSomething, 
    doSomethingElse: _doSomethingElse 
}; 

/** 
* @function _doSomething 
* @param {Array} arr 
*/ 
_doSomething = function(arr) {}; 

/** 
* @function _doSomethingElse 
* @param {Array} arr 
*/ 
_doSomethingElse = function(arr) {}; 

在我的實際應用SomeClass也是一個模塊,所以它被寫成:

/** 
* @module path/to/SomeClass 
*/ 

/** 
* @class module:path/to/SomeClass 
*/ 
var SomeClass = module.exports = function() {}; 

然後鏈接被寫成{@link module:path/to/SomeClass~_doSomething}所以它會鏈接到它的現貨模塊頁面上而不是在全局尋找他們。

相關問題