WebStorm / PhpStorm和JavaScript ES6:解析分配未被识别

时间:2017-10-12 12:58:37

标签: javascript ecmascript-6 phpstorm webstorm

考虑这个ES6代码:

class Person {
    constructor(first, last) {
        let fixed = this.normalize(first, last);
        this.first = fixed[0];
        this.last = fixed[1];
    }

    normalize(first, last) {
        return [first.toUpperCase(), last.toUpperCase()];
    }
}

当我稍后使用它时,PhpStorm / WebStorm可以识别firstlast是该类的属性:

enter image description here

现在,如果我修改构造函数以使用destructuring assignment syntax

constructor(first, last) {
    [this.first, this.last] = this.normalize(first, last);
}

代码执行时没有错误,但IDE无法再看到属性:

enter image description here

enter image description here

这是我的代码的问题吗?我的IDE设置?我使用PhpStorm 2017.2.4

1 个答案:

答案 0 :(得分:2)

您可以通过向类添加JSDoc来手动告诉PHPStorm应该假定这些属性存在于Person - 链接对象上:

/**
 * @property {String} first
 * @property {String} last
 */
class Person {
    // ...
}