2013-03-20 62 views
1

我想知道如何记录类的构造函数的this.属性。举例来说,我已经试过@name标签来命名我的课,但它并没有为this.foo生成文档:替代“@name”来记录`this`的属性

/** 
* @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没有办法,是否有替代标签?

回答

2

尝试使用@alias标签来代替:

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

一般情况下,使用@alias标签重命名存在于你的代码的象征;如果您要记录代码中未出现的符号(例如,运行时生成的方法),请使用@name标记。

0

@name从以下代码中取消绑定docblock。

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

警告:通过使用@name标签,你告诉JSDoc忽视周围的代码,并把你的文档注释孤立。在许多情况下,最好是使用@alias标签,而不是

所以任何内部的项目就必须有适当的@name太(见http://usejsdoc.org/about-namepaths.html正确的语法)。