如何使用jsdoc3记录ES6类模块?

时间:2015-12-02 04:03:05

标签: node.js jsdoc3

如果我正在开发一个节点模块 something-nifty ,它具有以下目录结构:

something-nifty/
    lib/
        plugins/
            Plugin.cs
    index.js
    package.json

plugin.cs 的定义如下:

"use strict";

/**
 * @module something-nifty/lib/plugins/Plugin
 */

/**
 * The base class for a 'something-nifty' plugin.
 */
class Plugin {
    /**
     * Constructs the plugin...
     */
    constructor() {
    }
}

module.exports = Plugin;

在生成的文档中,类被记录为好像它有@inner标记,这意味着每当我引用它时我都需要重复两次类名:

"use strict";

/**
 * @module something-nifty/lib/foo
 */

/**
 * Foo...
 * @param {module:something-nifty/lib/plugins/Plugin~Plugin} plugin
 */
exports.abc = function(plugin) { ... };

当然,在这种情况下,我不需要两次指定类名,因为模块本质上是类。使用jsdoc3标签对此进行注释的正确方法是什么,以便输出结构合理的文档(模块和类列表)?

1 个答案:

答案 0 :(得分:0)

花了一些时间搜索我能找到的最好的东西,这是(在我看来)"误用" @alias标记,如以下代码段所示:

"use strict";

/**
 * @module something-nifty/lib/plugins/Plugin
 */

/**
 * The base class for a 'something-nifty' plugin.
 * @alias module:something-nifty/lib/plugins/Plugin
 */
class Plugin {
    /**
     * Constructs the plugin...
     */
    constructor() {
    }
}

module.exports = Plugin;

以下链接指的是我在这个@alias诀窍中提到的文章: http://www.pagosoft.com/javascript/using-jsdoc-amd-modules/