我对 jsdoc 评论有点陌生(试图将一些 vsdoc 评论转换为 jsdoc,以便我可以使用支持 jsdoc 的文档生成器),所以如果我做的事情明显不正确,请阻止我,但我注意到如果你分配构造函数原型上的方法,智能感知适用于该成员:
/**
* @constructor
* @this {Foo}
*/
function Foo() {}
/**
* A bar of Foo for you.
* @param {string} baz A foo bar baz.
* @return {string} You get back what you give.
*/
Foo.prototype.bar = function(baz) { return baz; }
但是,如果您在构造函数中指定 bar,则 bar 方法上的智能感知会中断 - 它只会将整个注释、jsdoc 标记和所有内容显示为单个块。它不显示参数类型或通过以下方式传递返回值:
/**
* @constructor
* @this {Foo}
* @param {string} baz A foo bar baz.
*/
function Foo(baz) {
/**
* A bar of Foo and something else too.
* @param {string} barzipan A little something extra.
* @return {string} You get back what you gave, and then some.
*/
this.bar = function(barzipan) { return baz + barzipan; };
}
vsdoc intellisense 解析器能够处理原型上的方法或分配给 this 的方法,但是 jsdoc 解析器似乎被构造函数中分配给 this 的方法弄糊涂了。