【发布时间】:2016-05-26 20:08:41
【问题描述】:
我想知道如何在 WebStorm 11 中正确使用 JSDoc 来标记 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 会显示“找不到要转到的声明”。
知道如何正确执行此操作吗?
【问题讨论】:
-
您需要使用@module 标签并使用module:namepath 引用您的模块。见usejsdoc.org/howto-commonjs-modules.html
-
谢谢@lena!这让我更接近了,但仍然不是我想要的,也许我误解了一些东西:使用
/** * @module test/data/A */ module.exports = new A();它没有按预期工作。但是当我添加`@alias module:test/data/A.doSth`在添加到A原型的每个函数前面时,它可以完成代码。但我想避免这种情况。有没有办法让它自动检测到这一点? -
也看到这个相关的问题,但是对于 ES6 类:stackoverflow.com/q/46504694
标签: javascript node.js webstorm jsdoc