微軟TypeScript團隊發布TypeScript 7.0候選版,官方規畫在一個月內發布正式版。該版最大變化,是編譯器底層改以Go實作,並導入多執行緒平行處理,在常見使用情境下,TypeScript 7.0的速度約可達TypeScript 6.0的10倍。
TypeScript是JavaScript的型別化語言,不少JavaScript專案會用來檢查型別問題,提早發現部分錯誤。過去TypeScript編譯器本身以TypeScript撰寫,再轉成JavaScript執行。新版則將既有編譯器程式碼逐步搬到Go,目標是在不改變原有型別判斷規則的前提下,提高大型專案的建置速度與編輯器反應速度。
官方強調,這次是把既有實作搬到新的技術基礎。TypeScript 7.0的型別檢查邏輯在結構上與TypeScript 6.0相同,一般TypeScript程式碼若已能在TypeScript 6.0通過檢查,轉到7.0理論上不需重新理解主要型別規則。
新版編譯器可將多個工作平行處理,包括解析程式碼、檢查型別與產生輸出檔案,TypeScript 7.0預設使用4個型別檢查器,開發者可透過新的設定選項調整數量。不過官方也提醒,增加型別檢查器可能縮短大型專案建置時間,但也會使用更多記憶體,資源較有限的CI環境,反而可能需要降低數量。
TypeScript 7.0也改善監看模式,當開發者修改檔案後自動重新檢查專案,過去在大型專案中可能消耗較多系統資源。新版監看機制借鑑Parcel專案的檔案監看技術,並移植到Go,官方表示可改善跨平臺穩定性與資源使用情況。
編輯器支援也是這次更新重點之一,VS Code使用者可透過TypeScript Native Preview擴充套件試用新版體驗。官方表示,新版語言服務採用語言伺服器通訊協定,可利用多執行緒同時處理編輯器請求。
升級仍有需要留意的地方,TypeScript 7.0沿用TypeScript 6.0的新預設行為,包括預設啟用嚴格模式、模組預設改為esnext,以及部分舊設定不再支援,例如ES5輸出目標、舊版Node模組解析方式,以及部分舊式模組格式都會成為錯誤。官方建議開發者先採用TypeScript 6.0,以降低後續升級到7.0時的調整幅度。
TypeScript團隊也提供TypeScript 6相容套件,讓仍依賴舊版程式介面的工具可以並行使用。官方表示,穩定的程式化API最快要到TypeScript 7.1才會提供,因此部分開發工具短期內仍可能需要保留TypeScript 6。
Comments (0)