我正在使用匿名函数将方法添加到命名空间对象。最后,我希望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);
答案 0 :(得分:1)
您可以在 aliases 的JSDoc文档中看到类似场景的示例,请参阅&#34;对命名空间的静态成员使用@alias&#34; < / p>
答案 1 :(得分:0)
显然,JSDoc 3尚未实现这一点。
我最终使用了merge / extend / augment-type辅助函数,如下所示:
(function (ns) {
extend(ns, /** @lends ns */ {
/** Method description 1 */
func1: function (val) {},
/** Method description 2 */
func2: function (val) {},
// ...etc
});
})(MyNamespace);
这为JSDoc提供了创建适当文档所需的一切。一个小缺点是func1
现在将在Chrome错误控制台堆栈跟踪中显示为extend.func1
。