JS/TS解构赋值给实例属性报错原因及正确写法
报错原因与解决方案
报错原因
你的写法违反了JS/TS解构赋值的基础语法规则,核心问题有三点:
- 语义冲突:
const关键字用于声明新变量,但你需要的是给已存在的this.entry.title属性赋值,不需要声明新变量,加const属于完全错误的用法。 - 命名规则不合法:
const {title: this.entry.title}的写法相当于尝试声明一个名为this.entry.title的常量,而JS变量名不允许包含.、this关键字这类内容,直接触发语法报错。 - 块解析歧义:如果不加
const直接写{title: this.entry.title} = {title: "Menu"},JS会把开头的{识别为代码块的起始标记,而非对象解构模式,同样会报错。
正确实现方式
去掉const声明,用圆括号包裹整个解构赋值表达式即可,代码如下:
// 正确写法 ({title: this.entry.title} = {title: "Menu"}); // 验证:输出 Menu console.log(this.entry.title);
如果需要同时解构多个属性赋值,可以扩展写法:
({ title: this.entry.title, id: this.entry.id, desc: this.entry.desc } = {title: "Menu", id: 101, desc: "首页菜单"});
内容的提问来源于stack exchange,提问作者st_clair_clarke
相关产品推荐
相关产品推荐

