1

我想知道如何记录this.类的构造函数的属性。例如,我尝试使用@name标签来命名我的班级,但它没有生成以下文档this.foo

/**
 * @name ClassName
 * @constructor
 */
function noname (){
    /** @type {String} */
    this.foo = "bar";
}

我可以这样解决:

/**
 * @name ClassName
 * @constructor
 */
function noname (){
    /** 
    * @type {String} 
    * @name ClassName#foo
    */
    this.foo = "bar";
}

或以这种方式:

/**
 * @name ClassName
 * @constructor
 */
function noname (){
    /** @lends ClassName# */
    var that = this;

    /** @type {String} */
    that.foo = "bar";
}

但是,两者都不能令人满意,因为这要么需要更改大量现有代码,要么需要在 jsdoc 注释中添加所有属性名称。

既然@name不能解决问题,是否有替代标签可以?

4

2 回答 2

2

尝试改用@alias标签:

/**
 * @alias ClassName
 * @constructor
 */
function noname (){
    /** @type {String} */
    this.foo = "bar";
}

通常,使用@alias标签重命名代码中存在的符号;@name如果您正在记录代码中未出现的符号(例如,在运行时生成的方法),请使用该标记。

于 2013-04-04T01:22:29.520 回答
0

@name 从以下代码中取消绑定文档块。

http://usejsdoc.org/tags-name.html

警告:通过使用@name 标记,您是在告诉 JSDoc 忽略周围的代码并单独处理您的文档注释。在许多情况下,最好改用@alias 标签

因此,任何内部项目也必须具有正确的 @name(有关正确语法,请参见http://usejsdoc.org/about-namepaths.html)。

于 2014-12-17T20:09:31.957 回答