Как определить «режим» в typeScript для VueRouter - PullRequest
0 голосов
/ 04 мая 2020

Я новичок в TypeScript и столкнулся с этой проблемой:

export default function ({ store }) {
  const Router = new VueRouter({
    scrollBehavior: () => ({ x: 0, y: 0 }),
    routes,

    // Leave these as they are and change in quasar.conf.js instead!
    // quasar.conf.js -> build -> vueRouterMode
    // quasar.conf.js -> build -> publicPath
    mode: process.env.VUE_ROUTER_MODE,
    base: process.env.VUE_ROUTER_BASE
  })

mode подчеркнут, сказав image

Как правильно избежать этой ошибки? Я обнаружил похожую проблему , но она может быть вообще не связана.

1 Ответ

1 голос
/ 04 мая 2020

mode принимает только следующие значения следующего типа:

'hash' or(|) 'history' | abstract' | undefined

Тип process.env.VUE_ROUTER_MODE равен string | undefined

Поскольку эти типы разные, машинопись будет жаловаться, что вы не можете назначить какую-либо строку, когда разрешены только определенные c значения.

Не зная, что такое process.env.VUE_ROUTER_MODE, вам придется «привести» его к этому типу Например,

mode: process.env.VUE_ROUTER_MODE as 'hash' | 'history' | 'abstract' | undefined

Если process.env.VUE_ROUTER_MODE может иметь другое значение, может быть полезно написать вспомогательную функцию, которая сначала проверяет значение.

...