如何使用JSdoc引用另一个文件中的@class?

Wes*_*Wes 5 javascript jsdoc jsdoc3

例如MyClass.js

/**
 * @class
 * @name module:Bar
 * @param {number} a1
 * @param {string} a2
 */
function Bar(a1, a2){}
Run Code Online (Sandbox Code Playgroud)

并且,在另一个文件中:

/** @type module:Bar.constructor */ // made up syntax
var Bar = require("./MyClass.js");
Run Code Online (Sandbox Code Playgroud)

重新定义@class有效,但不方便:

/**
 * @class
 * @name module:Bar
 * @param {number} a1
 * @param {string} a2
 */
var Bar = require("./MyClass.js");
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Axe*_*ard 5

仅类名就足够了。

/**
 * @type module:Bar
 */
var Bar = require("./MyClass.js");
Run Code Online (Sandbox Code Playgroud)

您应该使用@alias而不是@name

警告:通过使用 @name 标签,您将告诉 JSDoc 忽略周围的代码并单独处理您的文档注释。在许多情况下,最好使用 @alias 标签,它会更改文档中符号的名称,但保留有关该符号的其他信息。

/**
 * @class
 * @alias module:Bar
 * @param {number} a1
 * @param {string} a2
 */
function Bar(a1, a2){}
Run Code Online (Sandbox Code Playgroud)

  • jsdoc 文档是如此晦涩难懂。我如何避免写两次@param? (2认同)