Расширение Typescript / изменение существующего интерфейса - мета Vue Router - PullRequest
0 голосов
/ 05 июня 2019

Извините, если на этот вопрос был дан ответ, но я не могу найти ответ где-либо.Если есть хороший ответ, пожалуйста, можете ли кто-нибудь связать его.

Я пытаюсь расширить существующий интерфейс машинописи, который находится внутри node_module в моем приложении.Под «расширением» я подразумеваю перезапись используемого определения по умолчанию.'meta' в настоящее время установлен, и я хочу изменить его, а не создавать новый интерфейс для использования, который использует интерфейс из текущей библиотеки.

Я хотел бы попытаться присоединить это к глобальному экземпляру этого.$ router.currentRoute.meta вместо того, чтобы использовать 'как ТИП' каждый раз, когда я его использую.

router.ts

export interface Meta {
    Auth: boolean,
    displayName: string | null
}

shims-vue.d.ts

import {Meta} from '@/router'

declare module "vue/types/vue" {
  interface Vue{
    $router: {
      currentRoute: {
        meta: Meta // This should be set to my new Meta interface rather than the default meta?: any type within vue-router/types/router.d.ts
      }
    }
  }
}

page.vue

const name = this.$router.currentRoute.meta.displayName // type: any

Спасибо всем.

...