You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSDoc生成的构造器文档中添加命名空间前缀?

解决JSDoc构造器文档缺失命名空间前缀的问题

针对你ES5非模块化项目中JSDoc生成的构造器文档缺少ct.前缀的问题,用原生JSDoc标签就能解决,不需要自定义模板或额外插件,具体方法如下:

核心方案:用@name标签指定完整类名

在你的Checkbox类注释中,添加@name ct.Checkbox标签,明确告诉JSDoc这个类的完整带命名空间的名称。修改后的注释代码如下:

/**
 * @name ct.Checkbox
 * @memberof ct
 * @class
 * @classdesc A checkbox input entity
 * @extends ct.Base
 *
 * @param opts {ct.Checkbox#Options}
 */
ct.Checkbox = function(opts) { ct.Init(this, arguments); };
ct.Checkbox.prototype = ct.Inherit(ct.Base, /** @lends ct.Checkbox.prototype */ {
    /** @type string */ _id: null,
    /** @type boolean */ _value: null,

    // 其他原型方法
});

原理说明

你原来的注释中@memberof ct只是声明了类属于ct命名空间,但因为构造函数是匿名函数赋值给ct.Checkbox,JSDoc默认只会提取类名Checkbox作为构造器显示名称。加上@name ct.Checkbox后,JSDoc会直接使用这个完整名称生成构造器文档,最终显示为new ct.Checkbox(opts),和你的实际调用方式一致。

备选方案:用@constructs标签指定构造器名称

如果你更倾向于用构造函数的方式声明,也可以替换@class为@constructs ct.Checkbox,效果相同:

/**
 * @memberof ct
 * @constructs ct.Checkbox
 * @classdesc A checkbox input entity
 * @extends ct.Base
 *
 * @param opts {ct.Checkbox#Options}
 */
ct.Checkbox = function(opts) { ct.Init(this, arguments); };

这两种方法都不需要使用@hideconstructor或额外插件,原生JSDoc就能处理。

内容的提问来源于stack exchange,提问作者Barn on a Hill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 02:57:51