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()
posted @ 2024-05-18 21:02  淡然置之  阅读(237)  评论(0编辑  收藏  举报