在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進行一個轉換就可以了