Vue: Ошибка TypeScript при использовании Vue.mixin - PullRequest
0 голосов
/ 22 декабря 2018

Я создаю приложение SSR, используя Vue.js.

Я столкнулся с ошибкой машинописи при попытке this .

Vue.mixin({
    beforeRouteUpdate (to, from, next) {
        const { asyncData } = this.$options
        if (asyncData) {
            asyncData({
                store: this.$store,
                route: to
            }).then(next).catch(next)
        } else {
            next()
        }
    }
})

И это ошибка.

Property '$options' does not exist on type 'VueConstructor<Vue> | ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<string, any>>'.


Property '$store' does not exist on type 'VueConstructor<Vue> | ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<string, any>>'.

Как мне избежать этой ошибки?Я новичок в машинописи.Спасибо.

1 Ответ

0 голосов
/ 24 января 2019

Вы можете сделать что-то вроде этого:

Vue.mixin({
    beforeRouteUpdate ((this as Vue), to, from, next) {
        const vm = this as Vue;
        const { asyncData } = vm.$options
        if (asyncData) {
            asyncData({
                store: vm.$store,
                route: to
            }).then(next).catch(next)
        } else {
            next()
        }
    }
})
...