我使用 WebStorm 作为我选择的 IDE 并编写了很多 JavaScript。自动补全很好,但在 JavaScript 的情况下仍然......还有待改进......这至少是我所经历的。
例如
有两个类,A
和B
:
/**
* This is Doc of class A
* @constructor
*/
A = function () {
this.name = "Class A";
this.data = {
foo: "Foo!",
bar: "Bar!"
};
};
/**
* @inheritDoc A
* @augments A
* @constructor
*/
B = function () {
A.call(this);
// this works fine in the application
// but is not registered by WebStorm / IntelliJ
this.data.braz = "Braz!"
};
B.prototype = Object.create(A.prototype);
var a = new A();
var b = new B();
我的问题
在 IDE 中:当我开始输入时a.
,自动完成功能启动并显示data (A)
和name (A)
.
但是当我b.
首先输入时它没有显示值,只有在我添加了/** @augments A */
. 没有它,WebStorm 就没有它。
但我遇到的主要问题是:当我输入时b.data.
,它不会为我提供braz (B)
选项。
是否有人对 JavaScript、@JSDoc、WebStorm / IntelliJ 有经验并知道解决方案?
我能做的是编写重复的代码并从上面复制this.data
对象并添加我需要的属性。
我也可以做的是直接把this.data
up to的内容this
。但这不是我想要的。
提前致谢!