javascript - WebStorm/PhpStorm 和 JavaScript ES6 : destructuring assignment not recognized

标签 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

最佳答案

您可以手动告诉 PHPStorm 这些属性应该假定存在于 Person 链接的对象上,方法是将 JSDoc 添加到类中:

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

关于javascript - WebStorm/PhpStorm 和 JavaScript ES6 : destructuring assignment not recognized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46710246/

相关文章:

javascript - 如何为 Chrome 扩展添加登录/电子邮件页面?

javascript - 使用 Angular 1.5 UI 路由器的 ES6 导入语法

javascript - 如何获取javascript对象的属性名称?

git - PhpStorm - 添加摘要以提交消息

php - PhpStorm 中的 "Add #[Pure] attribute"检查是为了什么?

sublimetext2 - sublime 的 phpstorm 配色方案

javascript - 手动调用 jQuery document.ready 函数

javascript - 根据输入范围值显示/隐藏 DOM 元素

javascript - 如何让 Three.js 相机看到物体的脸部?

javascript - 这是将一个数组拆分为 2 个数组的最有效方法吗?