Vue+ts里面this.$store问题怎么解决
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了Vue+ts里面this.$store问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue+ts里面this.$store问题怎么解决文章都
千家信息网最后更新 2026年11月01日Vue+ts里面this.$store问题怎么解决
这篇文章主要介绍了Vue+ts里面this.$store问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue+ts里面this.$store问题怎么解决文章都会有所收获,下面我们一起来看看吧。
Vue+ts里this.$store问题
vuex里面我调用this.$store访问仓库state时,调用失败报错
解决办法
(this as any).$store
Vue实践ts中的一些常见错误及解决
mixin报错
import { Component, Prop, Vue ,Mixins} from 'vue-property-decorator'import httpminix from '../mixin/httpMixin'@Component({ mixins:[httpminix]})export default class HelloWorld extends Vue { public async getUser() : Promise { const r = await this.apiGet('/show') //HelloWorld上没有apiGet方法 this.firstName = JSON.stringify(r.data) }} 解决方案
import { Component, Prop, Vue ,Mixins} from 'vue-property-decorator'import httpminix from '../mixin/httpMixin'@Component// 这里从继承Vue改成继承Minix函数,这样就有提示了export default class HelloWorld extends Mixins(httpminix) { public async getUser() : Promise { const r = await this.apiGet('/show') this.firstName = JSON.stringify(r.data) } public mounted() { this.getUser() }} 扩展属性报错
我们现在代码里写一段window,然后用编辑器跳转到其.d.ts文件中去
// 定义一个全局变量 window 类型为Windowdeclare var window: Window;// 截取Window接口interface Window
由于这个接口为全局接口,所以我们可以声明一个同名全局全局接口,TS会帮我们合并
interface Window { // 也可以添加 // 字符串签名 可以允许添加未知名称属性 [p: string]: any}// 这样就可以使用如下代码不报错import axios from 'axios'window.axios = axios然后我们发现
window.axios //这里没有属性提示
然后我想把这个axios具体类型挂载上去,当然一想,像下面这样做
import {AxiosStatic} from 'axios'interface Window { axios: AxiosStatic}然后发现报错了,window上没有axios这个属性,就很疑惑,尝试改回去,仍然报错
import {AxiosStatic} from 'axios'interface Window { [p: string]: any}我就想这两个区别就是导入了一个类型,突然想到
TS中没有import和export的TS文件变量被视为全局
然后回去一看原本Window的定义
// 注意lib.dom.d.ts这里没有exportinterface Window
好的,想通了,就是因为使用import导入了一个类型,导致我自定义Window接口变成了模块内的,这时候的解决方案当然是看看内置语法有没有能显示定义全局性的变量
// bingo 此时window.axios有提示啦import { AxiosStatic } from "axios";declare global { interface Window { axios: AxiosStatic }}export { };TS为我们在模块定义全局提供了一个方式,用于解决在模块中扩展全局
declare global { // your type code}扩展Vue属性例子
import Vue from 'vue'declare module "vue/types/vue" { interface Vue { $message: string; }}在组件类中可以这样访问
this.$messgae //这里有属性提示
总结:需要扩展一个第三方声明文件,需要确定其命名空间以及扩展变量实现的接口结构,然后复制该接口写一次自己的类型即可
关于"Vue+ts里面this.$store问题怎么解决"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Vue+ts里面this.$store问题怎么解决"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
全局
接口
属性
问题
类型
变量
提示
文件
模块
知识
代码
内容
就是
方案
篇文章
解决方案
两个
仓库
价值
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
新华互联网科技
互联网科技工作委员会毛军
科技互联网政务服务
深圳互联网络科技有限公司
奇酷互联网科技
礼当家互联网科技
齐家互联网科技
壹账通互联网科技
亿人帮互联网科技
重庆科技学院互联网
北京华百购互联网科技有限公司
移动互联网科技股
互联网科技项目计划书材料类
南博望互联网科技有限公司
每天都有哪些好的互联网科技
互联网领先科技宣传片
科技互联网专业务虚会材料
广东猫王互联网科技有限公司电话
瑞安市蟠桃会互联网科技有限公司
互联网科技资迅
广州紫鲸互联网科技
联恩商钥互联网科技有限公司
互联网之后的科技是什么
中国的互联网科技企业的崛起
互联网金融中的现代科技
晓花互联网科技有限公司网址
乌苏新华互联网科技做什么的
互联网营销推广黑科技
兰石爱特工业互联网科技分公司