带有 Typescript 的 Vue3 路由器:缺少 RouteConfig
Vue3 Router with Typescript: missing RouteConfig
我从@vue/cli $> vue create my-project
创建了一个新的 vue 项目,激活了 Typescript 选项和路由器选项,并使用 $>vue add vue-next
.
升级到 vue3 beta
现在,$>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
问:我需要 createRouter
的 RouteConfig 的正确类型是什么?
(因为这是预发布版:我使用的是 vue-router@4.0.0-alpha.13。)
我运行进入同样的东西。根据视图-router.d.ts,路由数组的正确类型是RouteRecordRaw
; RouteConfig
用于 createRouter 参数本身。
但是如果我将数组键入 RouteRecordRaw
那么我 运行 进入问题 RouteRecordRaw
定义是由其他几种看起来没有导出的类型组成的,所以键入该阵列引起的问题多于它解决的问题。
我怀疑会出现更好的模式,但目前我将路由数组输入为 any
,这是可行的。
你可以这样使用。
import type { RouteRecordRaw } from 'vue-router';
const router = createRouter({
history: createWebHashHistory(),
routes: basicRoutes as RouteRecordRaw[]
});
我从@vue/cli $> vue create my-project
创建了一个新的 vue 项目,激活了 Typescript 选项和路由器选项,并使用 $>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
问:我需要 createRouter
的 RouteConfig 的正确类型是什么?
(因为这是预发布版:我使用的是 vue-router@4.0.0-alpha.13。)
我运行进入同样的东西。根据视图-router.d.ts,路由数组的正确类型是RouteRecordRaw
; RouteConfig
用于 createRouter 参数本身。
但是如果我将数组键入 RouteRecordRaw
那么我 运行 进入问题 RouteRecordRaw
定义是由其他几种看起来没有导出的类型组成的,所以键入该阵列引起的问题多于它解决的问题。
我怀疑会出现更好的模式,但目前我将路由数组输入为 any
,这是可行的。
你可以这样使用。
import type { RouteRecordRaw } from 'vue-router';
const router = createRouter({
history: createWebHashHistory(),
routes: basicRoutes as RouteRecordRaw[]
});