JSDoc3:如何记录返回函数的AMD模块

我试图找到一种方法来使用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上列出的模式都不适用于我。

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


从最新的稳定版本(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的额外内部函数。


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

/**
 * 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模块来说并不完美,但我认为该文档的读者能够理解模块的输出。

链接地址: http://www.djcxy.com/p/70421.html

上一篇: JSDoc3: How to document a AMD module that returns a function

下一篇: Backbone AMD with requireJs