微軟宣佈TypeScript出Native Code

Back
Category : News

微軟TypeScript團隊近日宣佈一項重大計劃,將TypeScript編譯器及語言服務移植到原生代碼,實現了令人矚目的性能提升。呢個計劃被命名為「Corsa」,目標係透過用Go語言重寫編譯器,解決現有基於JavaScript嘅TypeScript編譯器喺大型項目中遇到嘅性能瓶頸。根據官方公佈,呢個原生編譯器可以將編譯時間同編輯器啟動時間縮短十倍,仲大幅降低記憶體使用量,為開發者提供更流暢嘅開發體驗。

喺過去,TypeScript嘅編譯器係用TypeScript自身寫成,運行喺Node.js環境上面。雖然呢個設計方便維護同跨平台支持,但喺面對大型代碼庫時,會出現編譯時間長同記憶體消耗高嘅問題。尤其係喺像Visual Studio Code(VS Code)咁嘅百萬行代碼項目,編譯同類型檢查可能要花超過一分鐘。為了解決呢啲問題,微軟決定將編譯器移植到Go語言,利用Go嘅原生編譯特性同高效嘅並行處理能力,實現顯著嘅性能提升。

根據微軟提供嘅基準測試數據,新嘅原生編譯器(稱為tsc-go)喺多個真實項目中表現出色。例如,VS Code嘅150萬行代碼庫,原本需要77秒進行類型檢查,依家只用7.5秒,速度提升超過十倍。另一個例子係Playwright代碼庫(約35.6萬行),編譯時間從11秒縮減到1秒。甚至喺較細嘅項目如RxJS(約2100行),類型檢查時間亦從1.1秒降到0.1秒。呢啲數據顯示,新編譯器喺唔同規模嘅項目中都能保持穩定嘅性能提升。

除咗編譯速度,呢個原生編譯器仲改善咗編輯器嘅響應能力。例如,喺VS Code中載入整個項目嘅時間從9.6秒縮減到1.2秒,實現8倍嘅速度提升。呢啲改進主要歸功於Go語言嘅原生執行能力同共享記憶體並行處理,解決咗JavaScript運行時嘅限制,例如JIT編譯開銷同缺乏共享記憶體並行支持。同時,Go嘅垃圾回收機制同簡單語法亦令開發同維護更加高效。

雖然新編譯器(代號Corsa)目前仲係實驗階段,缺乏部分功能,例如增量編譯同某些編輯器功能(例如自動導入同重命名),但微軟承諾會喺2025年底前實現同現有TypeScript版本(代號Strada)嘅功能對等。呢個原生編譯器最終會成為TypeScript 7.0,與現有嘅TypeScript 6.x(基於JavaScript)並行維護,直至新版本達成熟同廣泛採用為止。開發者可以透過npm安裝@typescript/native-preview包,體驗新編譯器嘅功能,仲可以喺Visual Studio Marketplace下載VS Code擴展嘅預覽版。

微軟選擇Go而非其他語言如Rust或C#,亦引起咗開發者社群嘅熱烈討論。團隊解釋,Go嘅簡單性、快速編譯同強大嘅並行支持,使其成為移植TypeScript嘅最佳選擇。相比之下,Rust嘅嚴格借用檢查同複雜語法會增加移植難度,而C#嘅面向對象特性同TypeScript嘅功能風格唔完全匹配。微軟仲提到,呢個移植計劃唔係重寫,而係逐行逐函數轉換現有代碼,確保行為同語義嘅高度一致性。

呢個計劃為TypeScript生態系統帶來咗新嘅可能性,例如即時錯誤檢測、更進階嘅重構工具同AI驅動嘅代碼洞察。微軟鼓勵開發者參與測試同提供反饋,共同完善呢個原生編譯器。想了解更多詳情,可訪問官方博客:https://devblogs.microsoft.com/typescript/typescript-native-port/