大家好!備受期待的 TypeScript 7 終於在前幾天正式釋出了,而它帶來的新功能真的相當驚人。

幾個月前我已經寫過一篇關於這個主題的文章,不過今天我還是想再談一次這件程式設計界的大事。

那麼,讓我們開始吧!


👀 他們做了什麼?

首先值得注意的是,TypeScript 7 的實作現在改用 Go 程式語言完成。正如 Microsoft 所說,他們盡量讓新功能的行為與舊程式碼保持接近,以將 Bug 降到最低。

Go

簡單來說,這樣做是為了加快 TypeScript 程式碼編譯成機器可讀程式碼的速度。由於 VS Code 本身就是以 TypeScript 打造,因此它的速度也相應提升。現在編輯器操作幾乎是即時的(例如,在 VS Code 中尋找第一個錯誤,從約 17.5 秒縮短到不到 1.3 秒)。而且受益的不只是文字編輯器。

https://x.com/typescript/status/2074892178745327926

為了證明我的說法,讓我們看看效能基準測試:

基準測試 1:TypeScript 6 與 7 的編譯時間

程式碼庫 TypeScript 6 TypeScript 7 加速倍率
vscode 125.7s 10.6s 11.9x
sentry 139.8s 15.7s 8.9x
bluesky 24.3s 2.8s 8.7x
playwright 12.8s 1.47s 8.7x
tldraw 11.2s 1.46s 7.7x

基準測試 2:TypeScript 6 與 7 的整體記憶體用量

程式碼庫 TypeScript 6 TypeScript 7 累計記憶體用量
vscode 5.2GB 4.2GB -18%
sentry 4.9GB 4.6GB -6%
bluesky 1.8GB 1.3GB -26%
playwright 1.0GB 0.9GB -11%
tldraw 0.6GB 0.5GB -15%

基準測試 3:TypeScript 6 與 7 在 --checkers 8 下的效能

程式碼庫 TypeScript 6 TypeScript 7 (--checkers 8) 加速倍率
vscode 125.7s 7.51s 16.7x
sentry 139.8s 12.08s 11.6x
bluesky 24.3s 2.01s 12.1x
playwright 12.8s 1.16s 11x
tldraw 11.2s 1.06s 10.6x

這些都是官方的基準測試結果,而且真的非常驚人。我可以說,我以前那台老 MacBook 開啟 VS Code 都要等上好一段時間,但有了這些新功能之後,一切都會快上許多。


⚙️ 功能變更

除了速度提升,以及把所有函式重寫成 Go 之外,現在還新增了以下優點:

透過實驗性的 --checkers--builders,可並行進行解析、型別檢查與輸出,方便微調 Microsoft

這讓開發者可以完整控制效能與記憶體耗用之間的平衡。在 CI 執行環境或資源有限的情況下,可以降低平行處理程度,而不會失去功能。

新增 --singleThreaded,適用於除錯或資源受限的環境

這解決了一個相當重要的除錯問題,並確保在重現 Bug 時結果具有可預測性。

型別檢查 worker 可以單獨擴充,而不必同步擴充 builder worker

如果你不知道的話,型別檢查 worker 負責複雜的型別檢查邏輯,而 builder worker 則負責組裝 project references;它們的工作會受到專案相依圖的限制。

這表示現在可以更彈性地設定像 --checkers 6--builders 4 這類參數,讓每個專案都能取得最佳的建置效能。

--watch 模式也有所變更,現在它使用將 Parcel 的檔案監看器移植到 Go 的版本來進行組裝,並且能消除在大型 node_modules 上昂貴的輪詢操作。

另外在 JavaScript 和設定檔方面也有一些小變更,不過整體來說並不是那麼重要。


💬 我的看法

我認為,即使只是把函式重寫成 Go,像 TypeScript 這樣的基礎功能加速,對開發流程也有非常大的影響。現在的網站包含了相當多的模組,並且執行在 Next.js、Remix、Nuxt 等現代框架上,還有許多其他框架。它們全都仍然依賴 TypeScript,所以很難想像第 7 版帶來的十倍加速,究竟能替我們節省多少時間。對開發者來說,VS Code,以及建立在它之上的 Cursor,都能讓網站開發變得更快。


你對這件事有什麼看法呢?歡迎分享,會很有意思!

❤️ 非常感謝你閱讀這篇文章!

Thanks!


原文出處:https://dev.to/anthonymax/typescript-7-is-officially-released-4i7m


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝11   💬1   ❤️5
295
🥈
我愛JS
📝2   💬6   ❤️3
112
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登