Javascript 在构造函数中指定的方法上Visual studio web essentials JSDoc intellisense不起作用?
我对jsdoc注释有点陌生(尝试将一些vsdoc注释转换为jsdoc,这样我就可以使用支持jsdoc的文档生成器),所以如果我做了一些明显不正确的事情,请阻止我,但我注意到,如果您在构造函数的原型上分配方法,intellisense对该成员有效:Javascript 在构造函数中指定的方法上Visual studio web essentials JSDoc intellisense不起作用?,javascript,visual-studio,intellisense,jsdoc,web-essentials,Javascript,Visual Studio,Intellisense,Jsdoc,Web Essentials,我对jsdoc注释有点陌生(尝试将一些vsdoc注释转换为jsdoc,这样我就可以使用支持jsdoc的文档生成器),所以如果我做了一些明显不正确的事情,请阻止我,但我注意到,如果您在构造函数的原型上分配方法,intellisense对该成员有效: /** * @constructor * @this {Foo} */ function Foo() {} /** * A bar of Foo for you. * @param {string} baz A foo bar b
/**
* @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上的intellisense方法会中断—它只是将整个注释、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解析器能够处理原型上的方法或分配给它的方法,但是jsdoc解析器似乎被构造函数中分配给它的方法弄糊涂了。要处理这个问题,您需要在jsdoc值中添加更多的语法糖位。这是因为解析器不知道如何将“This.bar()”转换为“Foo.bar()”。要解决此问题,请添加以下内容:
/**
* @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.
* @function bar
* @memberof {@link Foo}
*/
this.bar = function(barzipan) { return baz + barzipan; };
}
见和。当您想要创建私有函数(记录私有函数)时,这也可以帮助您
function Foo(baz) {
/**
* Returns what Bob did...
* @param {string} doStuff Stuff to pass in.
* @function bob
* @memberof Foo
* @private
*/
var bob = function(doStuff) {
return "Bob did " + doStuff;
}
}