0

我正在使用匿名函数向命名空间对象添加方法。最后,我希望 JSDoc(3.3 版)为 、 等生成文档MyNamespace.func1()MyNamespace.func2()我想我可以将此信息添加到函数中定义的每个方法中,但是让 JSDoc3 识别它会容易ns得多一样MyNamespace。我怎么做?

/** @namespace */
var MyNamespace = {};

// (... some code that adds to MyNamespace ...)

(function (ns) {

    /** Method description 1 */
    ns.func1 = function (val) {};

    /** Method description 2 */
    ns.func2 = function (val) {};

    // ...etc

})(MyNamespace);
4

2 回答 2

1

您可以在别名的 JSDoc 文档中看到类似场景的示例,请参阅“将 @alias 用于命名空间的静态成员”部分

于 2013-10-25T13:13:29.003 回答
0

显然,这在 JSDoc 3 中是不可能的(还)。

我最终使用了一个合并/扩展/增强类型的辅助函数,如下所示:

(function (ns) {

    extend(ns, /** @lends ns */ {

        /** Method description 1 */
        func1: function (val) {},

        /** Method description 2 */
        func2: function (val) {},

        // ...etc
    });

})(MyNamespace);

这为 JSDoc 提供了创建正确文档所需的一切。一个小缺点是func1现在将显示为extend.func1Chrome 错误控制台堆栈跟踪。

于 2013-10-25T23:08:15.970 回答