新聞

Vercel旗下開發團隊Vercel Labs推出開放原始碼編譯器tsc-ts,將微軟以Go語言開發的TypeScript 7.0.2編譯器重新以TypeScript實作,再透過自家工具scriptc轉換成可直接執行的原生程式。新工具支援型別檢查、JavaScript程式碼輸出及增量建置,目前仍屬實驗性專案。

TypeScript是JavaScript的延伸語言,可在開發階段檢查程式碼中的資料型別,協助開發者提早發現錯誤。微軟原本使用TypeScript開發編譯器,但今年7月發布TypeScript 7時,改用Go語言重新實作,透過原生執行與多核心平行處理加快編譯速度。微軟當時公布的測試顯示,大型專案的完整編譯速度通常比舊版快8至12倍。

Vercel Labs則採取不同作法,保留TypeScript作為編譯器的開發語言,再利用scriptc產生原生執行檔,讓tsc-ts執行時不必依賴Node.js。開發者可維持使用既有的TypeScript專案設定,執行型別檢查、產生JavaScript與型別宣告檔,也支援增量建置,減少重複編譯未變動程式碼的時間。

不過,tsc-ts本身雖然是原生程式,仍會將一般TypeScript專案編譯成JavaScript,而非直接轉換成機器碼。

開發團隊使用約1.25萬個測試檔案,拆分成約1.7萬組測試,比對tsc-ts與Go版編譯器的型別檢查、錯誤訊息及程式碼輸出結果,專案公布的測試項目均與Go版一致。tsc-ts已透過npm提供macOS、Linux及Windows版本,採Apache 2.0授權。tsc-ts也已提供編譯器介面,可供scriptc等工具使用,開發團隊仍持續改善相容性與效能。