vue+typescript中,方法里调用this.$router 报错
Property '$router' does not exist on type 'Close'
请问如何解决?
close.vue
<template>
<div class="close-wrap"
:class="{'header-close': closeType === 'header'}"
@click="back">
<i class="close icon iconfont icon-xiangzuo1"></i>
</div>
</template>
<script lang="ts">
import {Vue, Component, Prop, Inject} from 'vue-property-decorator'
@Component({})
export default class Close extends Vue {
// props
@Prop({default: ''})
closeType: 'icon'
// methods
back(): void{
console.log(this); // 打印出是Close实例,其上能找到$router属性
// 这里报错:Property '$router' does not exist on type 'Close'
this.$router.go(-1);
}
}
</script>
// 打印出是Close实例,其上能找到$router属性,并通过原型链往上找也能找到go()
我没用ts写过,其他社区找到个答案
使用了这种方式
this['router']
文档里其实有说明的,需要对类型进行补充
vue-shim.d.ts文件
这个时候已经能正确编译了,但是编辑器可能还有红色报错,这个应该的改编辑器的设置(这我不太确定)?