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 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
AI情绪识别开源7 小时前
HFpEF 心房-心室耦联效率无创监测方向(AVCEI)
typescript·laravel·perl
郑州光合科技余经理7 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆6668 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人8 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)8 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan8 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_9 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒9 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技9 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端