1

我使用 WebStorm 作为我选择的 IDE 并编写了很多 JavaScript。自动补全很好,但在 JavaScript 的情况下仍然......还有待改进......这至少是我所经历的。

例如

有两个类,AB

/**
 * 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.dataup to的内容this。但这不是我想要的。

提前致谢!

4

0 回答 0