如何在JSDoc中记录深度大于2的符号?

时间:2016-04-28 20:25:00

标签: javascript jsdoc jsdoc3

我有一个包含多个方法的对象,并且是一个类的成员。我如何用JSDoc记录这个?

这是我的尝试。记录了这个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) {};




1 个答案:

答案 0 :(得分: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},因此它会链接到模块页面上的位置,而不是在Globals中查找它们。