Vue3报错:已声明“upperName”,但从未读取其值。ts-plugin(6133)
Vue3报错:已声明“upperName”,但从未读取其值。ts-plugin(6133)
报错显示:
类型“StoreToRefs<Store<"count", { sum: number; name: string; address: string; }, {}, { increment(value: number): void; }>>”上不存在属性“upperName”。ts-plugin(2339)
相关代码:
vue文件:
const {sum,name,address,enlargeSum,upperName} = storeToRefs(countStore)
ts文件:
getters:{
enlargeSum:state => state.sum*10,
upperName(state){
return this.name.toUpperCase()
}
}
代码解释及报错原因:
我是在定义一个对象的 getters 属性,包含了 enlargeSum 和 upperName 两个函数,我在 upperName 函数中使用了 this.name.toUpperCase() 来获取 name 属性的大写形式。然而 state 参数是作为第一个参数传入的,并不支持通过this来访问属性
解决方案:
应该使用第一个参数来访问 state ,而不是通过 this
把this改为state就不报错啦
return state.name.toUpperCase()