尤雨溪官宣:Vue (Official)重磅更新!新功能一览!
如果你最近升级了 Vue Language Tools 3.2,很可能会有一种强烈的直觉感受:
Vue,已经不再只是“能写 TS”,而是“原生就是 TypeScript 体验”。
智能提示、自动导入、精准类型推导、局部格式化、语法高亮一致性、稳定性全面提升—— 这些过去只在 纯 TypeScript 项目 里才有的体验,现在在 .vue 文件里一次性给齐了。
为什么说「Vue 变成了 TypeScript」?
先说清楚一个前提:不是语法变了,而是“开发体验的底层标准变了”。
以前的 Vue 是什么状态?
.vue是特殊文件TS能用,但经常「半懂不懂」类型提示时好时坏 组件跳转、 props推断不稳定写得越复杂, IDE越容易“装死”
本质问题只有一个:Vue 文件里的信息,没有被 TypeScript 完整理解。
现在的 Vue 是什么状态?
在 Vue Language Tools 3.2 之后:
.vue被完整拆解、建模组件、 Props、Slots、v-for、JSDoc👉 都进入 TypeScript 的类型系统编辑器看到的 Vue,已经是一个类型完备的程序结构
你在 Vue 里得到的,是和 .ts 文件同级的智能体验。
Vue Language Tools 3.2 做了什么?
下面我们按官方 Release Notes 顺序,一项一项拆开来看。
一、SFC:Vue 文件终于“被完全看懂了”
1️⃣ Rich Hover Message(实验性)
现在,把鼠标悬停在组件上,你能看到:
Props Slots 额外的类型信息 全部自动生成、结构清晰
这意味着什么?
组件不再是黑盒,而是“可读的类型对象”。
以前你要点进去看定义,现在只需要 hover。
📌 注意: 该功能目前是实验性,需要手动开启Extensions Settings → Vue → Hover: Rich
2️⃣ 组件自动导入,终于和 TS 一样顺滑
输入组件名时:
IntelliSense 直接给你候选 选中后自动插入 import不用手写、不用猜路径
这一步非常关键。
它代表着:
Vue 的组件系统,正式进入“类型可索引”的世界。
这正是 TypeScript 项目里最核心的开发体验之一。
3️⃣ JSDoc 信息真正“生效”了
这次升级里,一个很容易被忽略、但极其重要的点是:
@deprecated会直接显示删除线注释不再只是“给人看” 而是参与 IDE 的行为决策
这说明什么?
Vue 组件,开始像一个“类型 API”被对待。
这正是 TS 生态的成熟标志。
4️⃣ v-for key 类型与 TS / 运行时对齐
一个非常“工程级”的改动:
number 类型的 key 自动视为 string 与 TS 推断 & Vue runtime 完全一致
这解决的是:
“类型对,但编辑器报错” “编辑器不报,运行时报错”
现在三者终于统一了。
二、格式化:Vue 不再是格式化的“异类”
5️⃣ 支持「选中范围格式化」
这是一个写多了你就离不开的功能:
不再强制格式化整个文件 精准处理当前代码块 对大组件文件尤其友好
这已经是纯 TS 项目里的标配体验。
6️⃣ 块级格式化设置(Per-block)
现在你可以:
template 一套规则 script 一套规则 style 再一套规则
这意味着:
Vue 文件终于可以无缝接入复杂工程的格式化体系。
而不是被迫迁就一种“Vue 特供格式”。
三、语法 & 高亮:稳定性全面补齐
7️⃣ 修复多年遗留的高亮问题
这是一个“不会上热搜,但人人受益”的升级:
语法高亮不再乱跳 边界 case 被系统性修复 编辑器表现更接近真实语义
稳定性,是专业感的基础。
8️⃣ HTML wrapAttributes 格式终于正确高亮
如果你用过:
force-expand-multilineforce-aligned
你一定遇到过:格式是对的,但高亮是错的。
现在,这个割裂终于被补上。
写在最后
Vue 并没有“抛弃 JavaScript”, 而是彻底站在了 TypeScript 这一边。
Vue Language Tools 3.2 做的事情只有一件:
让 Vue 在编辑器里的地位,和 .ts 文件完全等价。
vue-language-tools-v3.2: https://gist.github.com/serkodev/ab7d6033f889992b779c2f57fa1ba818