Typescript Go 尝鲜体验指南

大型 Monorepo 中 TS 语言服务(Typescript Language Server)启动慢、跳转慢的问题或许有救了,官方正在使用 Golang 重写 TS Compiler。预期能有 10 倍的速度提升,内存使用也将显著减少!

具体内容可参见官方博文:A 10x Faster TypeScript - TypeScript

当前最新版本为 TypeScript 5.8,5.9 即将推出,原代码库会继续开发 6.x 系列,6.0 版本将有一些弃用和突破性变化。Golang 版本开发完成后将作为 TypeScript 7.0 发布 ,在 7.0 版本足够成熟前,6.x 系列会持续维护。

也许你会好奇为什么选用 Golang 重写,而非前端圈子更流行的 Rust。@RyanCavanaugh 给出了他理由,主要还是基于可移植性、开发周期和兼容性的考量。

虽然项目还处于早期阶段,无法用于生产,但这并不影响我们尝鲜体验,整体还是非常简单的。

仓库地址:GitHub - microsoft/typescript-go

环境准备

仓库克隆

shell 复制代码
git clone --recurse-submodules https://github.com/microsoft/typescript-go.git
cd typescript-go
git submodule update --init --recursive # submodule 初始化

依赖安装

首先安装 Go 1.24 or higher,MacOS 可使用 Homebrew 快速完成:brew install golang

安装完成后,进入项目构建产物

shell 复制代码
npm install # 安装依赖
npm run build # 构建产物

仓库下会多出一个 built 目录,其中包含所需的 tsgo二进制可执行文件,它会被后续流程使用到。

text 复制代码
built
└── local
    ├── lib.d.ts
    ├── ···
    └── tsgo

启动 VS Code

根据 README 提示,复制 .vscode/launch.template.json.vscode/launch.json

然后切换到调试面板,选择选择刚刚添加的配置启动,一个新的 VS Code 编辑器将被打开。

注意不要关闭原 typescript-go 项目下的调试进程

如上所示,若在 「输出」面板中可以看到 typescript-go,说明启动成功。

整体感受:快!真的很快 视频中的演示项目非常庞大,每天都有无数业务同学因此困扰。在 typescript-go 的加持下,类型加载的等待时间明显降低到了可接受范围内,大部分曾经需要加载若干分钟的文件,现在甚至能够做到秒开。

当然,你也可以把它当成一个常规的编辑器使用,但与 TS 有关的功能,可能存在一些限制。

使用局限

以下是乍一看很容易发现的问题,未被列出的可能还有很多......

  • 智能提示缺失:无法提示变量名、对象属性等
  • 不支持 jsx 语法:所有的属性都是 any,有时会报错
  • 类型识别问题:部分依赖、Project Reference 项目类型识别有误

可能的用途

虽然 typescript-go 项目自身还有很多问题,但若作为一个代码浏览器,或许是一个不错的选择。

比如代码仓库中部署的在线 VS Code 轻量版(如 Github1s),时常因为性能问题无法跳转

可以预见的是,在不久的将来,大型 Monorepo 的开发体验将会有质的飞跃,一起期待吧!

相关推荐
未来龙皇小蓝6 分钟前
RBAC前端架构-02:集成Vue Router、Vuex和Axios实现基本认证实现
前端·vue.js·架构
晓得迷路了19 分钟前
栗子前端技术周刊第 116 期 - 2025 JS 状态调查结果、Babel 7.29.0、Vue Router 5...
前端·javascript·vue.js
叶庭云28 分钟前
GitCode 与 GitHub 平台能力深度对比:聚焦于 AI 辅助开发与 Agent 自动化能力
人工智能·github·gitcode·源代码托管平台·ai 辅助开发·agent 自动化能力·易用性
顾北1234 分钟前
AI对话应用接口开发全解析:同步接口+SSE流式+智能体+前端对接
前端·人工智能
摸鱼的春哥1 小时前
春哥的Agent通关秘籍07:5分钟实现文件归类助手【实战】
前端·javascript·后端
念念不忘 必有回响1 小时前
viepress:vue组件展示和源码功能
前端·javascript·vue.js
C澒1 小时前
多场景多角色前端架构方案:基于页面协议化与模块标准化的通用能力沉淀
前端·架构·系统架构·前端框架
崔庆才丨静觅1 小时前
稳定好用的 ADSL 拨号代理,就这家了!
前端
江湖有缘1 小时前
Docker部署music-tag-web音乐标签编辑器
前端·docker·编辑器
恋猫de小郭2 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter