GitHub上一個名為ts-rust的專案,這兩天在開發者圈子裡傳開。它把微軟用Go重寫的TypeScript編譯器,連同型別檢查器和語言伺服器(LSP),整體移植到Rust,命令列工具叫tsc-rs。維護方pingdotgg在說明中講得很直白:實作程式碼全部由大型語言模型生成,自己一行都沒看過。
專案鎖定在microsoft/typescript-go的某個上游版本,對應TypeScript 7.1.0-dev。說明文件給出的測試結果是,18萬1711條從Go版移植過來的測試全數通過,在作者實測過的真實專案中相容度達100%。這個程式庫採用MIT授權,同時保留TypeScript的Apache-2.0與Go標準函式庫的BSD-3-Clause聲明,目前已累積600多顆星。
兩條模型路線
作者先用OpenAI的GPT-5.6 Sol和GPT-6 Astra跑了一輪,API費用超過40萬美元,產出約130萬行Rust程式碼,相容度卡在84%。接著換成Claude Opus 5.5從頭再來,10個小時就做出能跑的v0,兩週總花費約2萬4047美元。
I've never read a line of this code.
效能方面,作者拿自己的T3 Code專案做基準測試:tsc-rs跑完型別檢查用了7.25秒,Go版的tsc 7要16.10秒,快2.22倍。以JavaScript版的tsc 6為基準,tsc 7是7.1倍,tsc-rs則是11.4倍。這些數字全部來自作者自測,目前還沒有第三方重現,OpenAI和Anthropic也都沒有針對這次比較公開表態。
放進同類專案裡看
大型模型做大規模程式碼搬遷,今年已經有幾個公開案例。GitHub先前揭露過用Copilot把自家一套執行環境重寫成83萬行Rust;Mistral則用代理程式把4萬行Fortran 77搬到C++。這些專案的共同點,是都有一套現成、覆蓋面很廣的測試集充當裁判。
ts-rust也是同樣的路數。微軟的Go版移植本身就是一次逐檔案的「照抄式」重寫,測試案例也跟著一起搬過去,這給模型提供了一個幾乎完全確定的目標:十幾萬條測試,過了就是過了。兩款模型的差距,在這種目標明確、回饋即時的任務裡被放得特別大。換成需求模糊、沒有測試當安全網的商業程式碼,這套比較是否還成立,現在還說不準。
已知的坑
說明文件列了四條限制:在單一儲存庫裡,當同一個檔案可從多條路徑存取時,輸出檔案可能比tsc多;在tsc -b增量建置的情境下,可能讀到過時或缺失的產物;長時間編輯作業階段裡記憶體會緩慢上升,大約每1000次編輯增加20MB;顯示的版本號是移植當時的7.1.0-dev,不是npm上的版本。
作者把它定位成早期版本。對想嘗鮮的團隊來說,在CI裡並行跑一遍tsc-rs和官方tsc、比對診斷輸出,是比較穩妥的試法;在沒有人審過程式碼的前提下,直接拿它取代正式環境的建置鏈,風險要自己評估。
參考來源:ts-rust專案說明文件、CocoLoop、Hacker News討論;測試件數、API花費、T3 Code基準耗時與倍數皆依專案說明文件核對。