必须配置tsconfig.json的types为["vue"]、卸载vetur并重启vs code、同步vite.config.ts与tsconfig.json的paths别名,否则defineprops报红、路径跳转失效。

装对插件、关掉冲突项、配好 tsconfig.json,Vue 3 + TS 项目就能有完整类型提示和跳转——不是靠多装插件,而是三个动作必须做对。
为什么装了 Volar 还是 defineProps 报红?
根本原因是 TypeScript 编译上下文没加载 Vue 类型声明,defineProps 是全局宏,不是你写的函数,TS 必须知道它在哪定义。
- 检查项目根目录
tsconfig.json的compilerOptions.types是否包含"vue",缺了这行就必报Cannot find name 'defineProps' - 如果用的是 JS 项目,得用
jsconfig.json,且types要写成["vue/types"],并确保已安装@vue/runtime-core - 改完配置后,必须手动重启 TS 服务:按
Ctrl+Shift+P→ 输入Restart TS server→ 回车,否则改动不生效
Volar 和 Vetur 能共存吗?
不能。Vetur 已废弃,和 Volar 共存会导致语言服务打架,现象包括:模板里 ref 不提示类型、Ctrl+Click 跳转失效、defineEmits 下划线报错但代码完全合法。
使用 `@ainative/vue-sdk` 为 Vue 3 应用添加 AI 聊天功能。适用于以下场景:(1) 安装 `@ainative/vue-sdk`,(2) 在 Vue 组件中使用 `useChat` 组合式函数,(3) 提供……
- 卸载所有带 “Vetur” 字样的扩展(包括旧版 Vue 插件)
- 重装 Volar 后,必须重启 VS Code,不是重载窗口,否则 Volar 的语言服务器不会启动
- 打开任意
.vue文件,看右下角状态栏是否显示Vue (Volar);如果显示Vue (Vetur)或只有HTML,说明还没切过去
路径别名 @/components 点不进去怎么办?
VS Code 不读 vite.config.ts 里的 resolve.alias,它只认 tsconfig.json(或 jsconfig.json)里的 paths 配置,两者不一致就跳转失败。
- 在
tsconfig.json的compilerOptions中加:{ "baseUrl": "./", "paths": { "@/*": ["src/*"] } } -
"@/*"的结尾斜杠不能省,写成"@/*"才能匹配@/components/xxx.vue;写成"@"或"@/"都无效 - 如果项目还用了
~/或#/别名,也得一并在paths里声明,VS Code 不自动推导
多框架项目里 Volar 总把 .ts 文件搞崩?
默认开启的 Take Over Mode 会让 Volar 强制接管所有 .ts 和 .js 文件——在纯 Vue 项目里没问题,但在含 React、Electron 或 Node.js 模块的项目里,会导致 useState 不提示、__dirname 报错、require 失效。
- 按
Ctrl+Shift+P→ 输入Volar: Disable Take Over Mode→ 执行 - 关闭后,Volar 只作用于
.vue文件,其他文件交还给官方 TS 语言服务 - 此时
defineProps在.vue里仍正常,而React.FC在.tsx里也不再丢提示
最常被忽略的一点:Volar 的类型能力高度依赖项目中 node_modules 里的 vue 版本是否与 package-lock.json 一致。如果本地 vue 是 3.4.x,但 package-lock.json 锁的是 3.2.x,类型推导就会降级甚至中断——遇到奇怪的类型丢失,先 rm -rf node_modules package-lock.json && npm install。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










