WebStorm JSDoc class 代码完成声明 node.js 模块

WebStorm JSDoc class declaration for code completion with node.js modules

我想知道如何在 WebStorm 11 中正确使用 JSDoc 来标记 classes 和 node.js 应用程序中的类型以获得代码完成等

示例:

文件A:

function A(){
    this.b = true;
}
A.prototype.doSth = function doSth() {
    return !this.b;
}
module.export = new A(); 

文件 B:

var foo = bar(); // returns type of A

现在我想要 "foo." 的代码完成,因此它会建议 foo.b、foo.doSth、...

我尝试了很多 JSDoc 条目,例如 @class、@constructor 并使用 @type {A} 来定义 foo 的类型,例如

/* @type {A} */
var foo = bar();

但 WebStorm 不识别类型 A。它不执行代码完成,而且 Ctrl+单击括号中的类型 A 说 "Cannot find declaration to go to"。

知道如何正确执行此操作吗?

看来我找到了解决办法。问题只是我用来标记变量类型的语法:

/**
 * @class
 */
function A(){
    this.b = true;
}
A.prototype.doSth = function doSth() {
    return !this.b;
}
module.export = new A(); 

合作
/**
 * @type {A}
 */
var foo = bar();

注意注释语法的区别: 以前我尝试使用

/* @type {A} */
var foo = bar();

这是行不通的。 @class也可以换成@constructor