vuejs 打字稿属性路由器不存在

新手上路,请多包涵

我尝试在我的打字稿类组件中访问路由器:

 import {Vue} from 'vue-property-decorator'
import Component from 'nuxt-class-component'
import {Getter, Action} from 'vuex-class'

@Component
export default class Login extends Vue {
    @Action login

    username = ''
    password = ''

    async submit () {
        await this.login({username: this.username, password: this.password})
        this.$router.push('/results')
    }
}

不幸的是,我得到:

 error TS2339: Property '$router' does not exist on type 'Login'.

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 393
1 个回答

填充 vue 文件并包含 $router

制作一个名为 typings 的文件 vue-shim.d.ts

像这样调整你的垫片:

 import VueRouter, { Route } from 'vue-router'

declare module 'vue/types/vue' {
  interface Vue {
    $router: VueRouter
  }
}

现在 Vue (在你的情况下 - 这个)将具有 $router 的属性并且打字稿不会抱怨。

原文由 Ohgodwhy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题