Маршрутизатор Vue3 с Typescript: отсутствует RouteConfig - PullRequest
2 голосов
/ 17 июня 2020

Я создал новый проект vue из @ vue / cli $> vue create my-project, активировал опцию Typescript и опцию маршрутизатора и обновил до vue3 beta с помощью $>vue add vue-next.

Теперь $>npm run serve не работает с

ERROR in /home/auser/dev/my-project/src/router/index.ts(1,10):
1:10 Module '"../../node_modules/vue-router/dist/vue-router"' has no exported member 'RouteConfig'.

  > 1 | import { RouteConfig, createRouter, createWebHistory } from 'vue-router';
      |          ^
    2 | import Home from '../views/Home.vue'

Весь файл не такой длинный, и RouteConfig будет использоваться позже:

//index.ts
import { RouteConfig, createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue'

const routes: Array<RouteConfig> = [
{
  path: '/',
  name: 'Home',
  component: Home
},
{
  path: '/about',
  name: 'About',
  // route level code-splitting
  // this generates a separate chunk (about.[hash].js) for this route
  // which is lazy-loaded when the route is visited.
  component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
}
]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

Q : Какой правильный тип RouteConfig, что мне нужно для createRouter?

1 Ответ

1 голос
/ 29 июня 2020

(Поскольку это предварительная версия: я использую vue-router@4.0.0-alpha.13.)

Я столкнулся с тем же самым. Правильный тип для массива маршрутов - RouteRecordRaw согласно view-router.d.ts; RouteConfig предназначен для самого аргумента createRouter.

Но если я набрал массив как RouteRecordRaw, то я столкнулся с проблемой, что RouteRecordRaw определение состоит из нескольких других типов, которые выглядят так, как будто они не экспортируются , поэтому ввод массива вызывает больше проблем, чем решает.

Я подозреваю, что появится лучший шаблон, но на данный момент я набрал массив маршрутов как any, что работает.

...