大家好,我是农村程序员,独立开发者,行业观察员,VSCode 扩展批发商,前端之虎陈随易。
- 个人网站 1️⃣:https://chensuiyi.me
- 个人网站 2️⃣:https://me.yicode.tech
技术群与交朋友请在个人网站 👆 联系我,如果你觉得本文有用,一键三连 (点赞、评论、转发),就是对我最大的支持~

今天 TypeScript 官方团队发了一篇帖子和文章,表示用 Go 语言重写的 TypeScript v7 已经可以尝鲜了。
我以前是从来不用 TypeScript 的,自从用了 AI 编程后,TypeScript 也必须安排上了,一定程度来说,可以提高 AI 编程的质量。
不客气地说,我现在的代码,90%以上都是 AI 写的,我已经几个月没有自己写过代码了,所以,拥抱 AI 吧,不要落后了。
言归正传,让我们来聊聊 TypeScript 的前世今生,以及这次重写带来的巨大变化。
TypeScript 简史
TypeScript 诞生于 2012 年,由微软开发,核心目标是为 JavaScript 添加静态类型检查。
TypeScript 最初是用 JavaScript 实现的,后来用 TypeScript 完成了"自举"(用自己实现自己),但最终仍需编译成 JavaScript 运行。
这种架构在早期足够用,但随着项目规模越来越大,问题也逐渐暴露:
- 编译速度慢:大型项目的类型检查动辄几十秒
- 内存占用高:Node.js 单线程运行,无法充分利用多核 CPU
- 编辑器卡顿:代码补全、跳转定义时常让人等得心焦
为什么要用 Go 重写?
今年早些时候,TypeScript 团队宣布了代号为 "Project Corsa" 的原生移植计划。
选择 Go 语言重写的原因很直接:
- 原生性能:Go 编译为机器码,比 JavaScript 快一个数量级
- 内存效率:更低的内存占用
- 并行能力:Go 天生支持共享内存的并行处理
结果也确实令人振奋 ------ TypeScript 7 的编译速度通常能达到 6.0 版本的 10 倍!
现在能用了吗?
答案是:可以!
编辑器体验
TypeScript 官方已经发布了 VS Code 原生预览扩展,每天更新,支持的功能已经相当完整:
- ✅ 代码补全(包括自动导入)
- ✅ 跳转到定义 / 类型定义 / 实现
- ✅ 查找所有引用
- ✅ 重命名
- ✅ 悬浮提示
- ✅ 签名帮助
- ✅ 代码格式化
- ✅ 快速修复缺失导入
安装方式:在 VS Code 扩展市场搜索 "TypeScript Native Preview" 或访问 VS Code Marketplace。
命令行编译器
新编译器以 @typescript/native-preview 包发布,提供 tsgo 命令:
bash
# 安装
npm install -D @typescript/native-preview
# 使用(与 tsc 类似)
tsgo -b tsconfig.json
类型检查的准确性已经非常高 ------ 在约 20000 个测试用例中,TypeScript 7 与 6.0 的表现几乎完全一致。
--incremental、项目引用、--build 模式也都已支持,大部分项目可以直接切换使用。
重要变化提醒
TypeScript 7 会移除一些在 6.0 中计划废弃的功能:
| 变化 | 说明 |
|---|---|
--strict 默认开启 |
不再需要手动配置 |
--target 默认最新 ES |
如 es2025 |
移除 --target es5 |
最低支持 es2015 |
移除 --baseUrl |
需要迁移路径配置 |
移除 --moduleResolution node10 |
改用 bundler 或 nodenext |
官方提供了迁移工具帮助更新配置:
bash
npx @andrewbranch/ts5to6 --fixBaseUrl tsconfig.json
npx @andrewbranch/ts5to6 --fixRootDir tsconfig.json
当前限制
尽管进展神速,仍有一些功能暂未完成:
- JavaScript 代码降级编译目前只支持到
es2021 --watch模式效率可能不如旧版- 旧版 TypeScript API 不兼容(影响部分构建工具和 Lint 工具)
对于这些场景,可以将 typescript 和 @typescript/native-preview 同时安装,各取所需。
TypeScript 6.0:最后的 JavaScript 版本
官方明确表示:TypeScript 6.0 将是最后一个基于 JavaScript 的版本。
6.0 可以看作是 5.x 到 7.0 的"过渡版本",主要任务是废弃那些 7.0 将移除的功能。6.0 之后不会有 6.1,只有必要的补丁版本。
这意味着,TypeScript 的未来全押在 Go 重写的 7.0 上了。
总结
TypeScript 用 Go 重写,是近年来前端工具链演进的一个缩影:
- Babel → SWC(Rust)
- Webpack → Rspack / Farm(Rust)
- ESLint → Oxlint(Rust)
- TypeScript → TypeScript 7(Go)
用高性能语言重写 JavaScript 工具已成趋势。虽然语言变了,但目标没变:让开发体验更快、更顺滑。