11月7日,Cloudflare宣布推出TypeScript编译器的Rust移植版tsrs,该项目由Cloudflare联合VoidZero及Owner.com的Max Schwenk共同开发,在Oxc工具链中孵化,并与TypeScript团队密切合作。Cloudflare强调,tsrs并非TypeScript的分支,语言设计仍完全由TypeScript团队掌控。
Cloudflare声称,在类型检查工作线程数量相同的情况下,tsrs的类型检查速度最高可提升8倍,内存占用减少约70%。Rust还使项目能够通过@tsrs/wasm编译为WebAssembly,从而在浏览器或Workers上运行检查,无需像Go二进制文件那样将垃圾回收器一并带入最终产物。开发者只需指定现有的tsconfig,通过npm install -D tsrs与npx tsrs -p . --noEmit即可试用。
Schwenk在技术文章中解释,他没有编写任何代码,而是通过指挥以Claude Opus 5.5为核心的Agent完成了忠实于原版的移植,整个过程以TypeScript自身的15,197个一致性测试用例作为规范。在Owner拥有37,000个文件的单体代码库中,原本使用TypeScript 7.0需要19 GiB内存和80秒完成的检查,现在只需7秒。
不过也有开发者提醒,tsrs在存在类型错误时以退出码2结束,而tsc返回1,这一差异可能悄然破坏CI脚本;若以更新的TypeScript 7.1 beta为基准,性能提升幅度缩小至2.7倍。TypeScript团队的Daniel Rosenwasser回应称,性能提升并不只是语言选择的结果,tsrs中的一些优化已被用于改进TypeScript 7.1。
目前tsrs仍处于实验阶段,尚不支持watch模式和语言服务器,--init与--showConfig也不可用。Cloudflare已将Theo Browne的tsc-rs与tsrs合并为统一软件包,并计划加入语言服务器和内容映射器支持。仍在使用TypeScript 5或6的团队需先迁移到微软的原生Go移植版,再替换为tsrs。
扫码查看视频号
咨询
咨询