返回 导航

Vue.js

hangge.com

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)

回到顶部