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

How do I document symbols with a depth greater than 2 in JSDoc?

本文关键字:大于 符号 深度 记录 JSDoc      更新时间:2023-09-26

我有一个包含多个方法的对象,它是一个类的成员。我将如何用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) {};

这是我能想到的最好的。

我将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中查找它们。