Vue3中Property 'value' does not exist on type类型错误排查
问题原因及解决办法
核心错误点
你的代码存在一个关键拼写错误:Pinia定义store时,动作配置项应为**actions**(复数形式),但你写成了action(单数)。这个错误会导致Pinia无法正确生成store的类型定义,进而触发TypeScript的类型校验错误。
其他可能的关联排查点
如果修复拼写后仍有类似错误,可检查以下内容:
- 直接访问store的state变量时,无需添加
.value,正确写法是store.language,而非store.language.value。 - 若使用
storeToRefs解构state属性,解构出的变量为ref类型,此时需要通过.value访问值,示例:import { storeToRefs } from 'pinia' const store = useAppStore() const { language } = storeToRefs(store) console.log(language.value) - 确认
AppState类型定义正确,保证device、language的类型与state返回的结构完全匹配。
修正后的完整store代码
import { AppState } from '@/types' import { localStorage } from '@/utils/storage'; import { defineStore } from 'pinia'; import { getLanguage } from '@/lang/index'; const useAppStore = defineStore({ id: 'appStore', state: (): AppState => ({ device: 'desktop', language: getLanguage(), }), // 修正为复数形式的actions actions: { setLanguage(language:string) { this.language = language; localStorage.set('language', language); }, }, }); export default useAppStore;
内容的提问来源于stack exchange,提问作者None-sleep
相关产品推荐
相关产品推荐

