Vue+ts里面this.$store问题怎么解决
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了Vue+ts里面this.$store问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue+ts里面this.$store问题怎么解决文章都
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
武邑县网络安全检查
服务器怎么配置管理口
三维家服务器连接失常
数据库技术向导
信息网络安全监管工作
杭州传橙网络技术有限公司是什么
软件开发服务都包括什么科目
暗黑2无法连服务器
南宫软件开发系列
网络安全 压力
高稳定性的软件开发公司
我的世界服务器哪个好玩
嵌入式软件开发就业分析
本地数据库交互搜索
网络安全扫描的第一阶段
小白数据库信号
郴州软件开发培训哪家强
大连网络技术服务销售价格
姑苏区信息化网络技术联系方式
软件开发美工的工作内容
建党100周年期间网络安全
手机网络安全游戏
2014数据库对操作系统的要求
静海区网络技术售后保障
网络安全第五空间第二集
虚拟数据库组装技术
德州市委网络安全委员
新罗区昌帅星网络技术工作室
崇明区工业软件开发费用
肇庆支付软件开发设计