5

我正在尝试找到一种使用 JSDoc3 记录 AMD 模块的方法。

/**
 * Module description.
 *
 * @module path/to/module
 */
define(['jquery', 'underscore'], function (jQuery, _) {

    /**
     * @param {string} foo  Foo-Description
     * @param {object} bar  Bar-Description
     */
    return function (foo, bar) {
        // insert code here
    };
});

遗憾的是, http://usejsdoc.org/howto-commonjs-modules.html中列出的所有模式都不适合我。

如何生成适当的文档,列出模块导出的函数的参数和返回值?

4

2 回答 2

2

从最新的稳定版本(3.2.2)开始,我认为没有办法使用 jsdoc 生成文档来显示模块本身接受参数并返回一些值。我能达到的最接近理想的是:

/**
 * Module description.
 *
 * @module path/to/module
 */
define(['jquery', 'underscore'], /** @lends module:path/to/module */
       function (jQuery, _) {

    /**
     * The following function documents the parameters that the module
     * takes and its return value. Do not call as
     * <code>module.self(...)</code> but as <code>module()</code>.
     *
     * @param {string} foo  Foo-Description
     * @param {object} bar  Bar-Description
     */
    return function self(foo, bar) {
        // insert code here
    };
});

为模块生成的文档将有一个名为self.

于 2014-05-28T12:20:19.573 回答
1

以下似乎产生了一个看起来完全可以接受的结果:

/**
 * Module description
 *
 * @module path/to/module
 */
define(['jquery', 'underscore'], function (jQuery, _) {
    /**
     * Description for function.
     *
     * @param {string} foo  Foo-Description
     * @param {object} bar  Bar-Description
     */
    var exports = function () {
        // insert code here
    };
    return exports;
});

其中描述了模块和功能,例如:

require("path/to/module")(foo, bar)

这对于 AMD 模块来说并不完美,但我认为文档的读者能够理解模块导出的内容。

于 2014-06-02T15:23:36.917 回答