我想知道如何记录类的构造函数的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
不起作用,是否会有替代标记?
答案 0 :(得分:2)
请尝试使用@alias
标记:
/**
* @alias ClassName
* @constructor
*/
function noname (){
/** @type {String} */
this.foo = "bar";
}
通常,使用@alias
标记重命名代码中存在的符号;如果您要记录代码中未出现的符号(例如,在运行时生成的方法),请使用@name
标记。
答案 1 :(得分:0)
@name从以下代码中取消绑定docblock。
http://usejsdoc.org/tags-name.html
警告:通过使用@name标记,您告诉JSDoc忽略周围的代码并单独处理您的文档注释。在许多情况下,最好使用@alias标记
因此,任何内部项都必须具有正确的@name(请参阅http://usejsdoc.org/about-namepaths.html以获得正确的语法)。