vue +ts 的一次踩坑日记

在vue的方法里面写事件的时候比如写一个路由跳转,方法大概如下:

 goBack1() {
           console.log(this);
           this.$router.back();
 }
正常情况下只要你使用了vue-router都没问题,但是在TS中由于对类型检查是很严格的,所以就算最终可使用。但是在编译器上会出现
Property '$router' does not exist on type '{ goBack1(): void; }'.这样的问题,查了原型链发现方法是有的一开始只是觉得是router这方法有问题,但是实际上refs这样的一些方法调用的时候一样会报错,问题就出在this上面,他指向的是vuecomponent这个类型,我们的方法确是void返回,any类型,所以只要改成
((this as any).$router).back();
对this进行一个转换就可以了

猜你喜欢

转载自www.cnblogs.com/llcdbk/p/11908384.html