如何使用JSDoc3记录嵌套命名空间

11

我使用JSDoc3来记录这种结构的代码时遇到了麻烦

/**
 * @namespace MyNamespace.MySubNamespace
 */

(function (MyNamespace) {
    MyNamespace.MySubNamespace.Foo = {
        doSomething: function (someParam) {
            // doing it
        }
    }
})(window.MyNamespace)

我该如何使用JSDoc3来记录MyNamespace包含MySubNamespace,而MySubNamespace又包含Foo?此外,我该如何将doSomethingFoo关联,并记录其参数someParam

我的限制是我不能向声明MyNamespaceMySubNamespace的文件添加文档。

非常感谢!

1个回答

26

搞定了,希望这个解决方案能帮到其他人。

/**
 * @namespace MyNamespace.MySubNamespace
 */

 (function (MyNamespace) {
     /**
      * Foo namespace
      * @namespace Foo
      * @memberOf MyNamespace.MySubNamespace
      */ 
     var Foo = {
         /**
          * Does something.
          * @memberOf MyNamespace.MySubNamespace.Foo
          * @param {object} someParam Some parameter.
          */
         doSomething: function (someParam) {
             // doing it
         }
     };
     MyNamespace.MySubNamespace.Foo = Foo;
 })(window.MyNamespace)    

2
这仍然有助于(在2022年),当尝试将模块添加到命名空间时。 - lys

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接