Vue.js - 解决“TS7016: Could not find a declaration file for module 'vue-router'”错误
作者:hangge | 2026-01-20 08:51
1,问题描述
最近使用 Vue CLI 脚手架创建了一个 Vue.js 3 的项目。创建完毕后执行 npm run serve 命令启动时报如下错误:
ERROR in src/router/index.ts:1:64
TS7016: Could not find a declaration file for module 'vue-router'. 'D:/vue3_webpack/node_modules/vue-router/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/vue-router` if it exists or add a new declaration (.d.ts) file containing `declare module 'vue-router';`
> 1 | import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
| ^^^^^^^^^^^^
2 | import HomeView from '../views/HomeView.vue'
3 |
4 | const routes: Array<RouteRecordRaw> = [
2,解决办法
(1)首先打开项目 src 目录下的 shims-vue.d.ts 文件,在里面添加如下代码。此时会变成 TS2709 错误。
declare module 'vue-router';
(2)接着修改 src/router 目录下的 index.ts 文件,添加如下高亮代码即可解决问题。
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import HomeView from '../views/HomeView.vue'
//类型转换:解决TS2709错误
type RouteRecordRaw = typeof RouteRecordRaw
const routes: Array<RouteRecordRaw> = [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
}
]
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes
})
export default router
全部评论(0)