被指影響穩定性,Node.js 添加實驗性 TypeScript 支持引爭議
7 月 30 日消息,Node.js 開發團隊在 7 月 25 日合并了“為 TypeScript 添加實驗性支持”的 Pull Request 拉取請求頁面,旨在讓 Node.js 開發者可以通過配置實驗性 flag 直接執行 TypeScript 文件。不過此舉引發爭議,大量用戶認為這將導致 Node.js 降低穩定性,相關頁面甚至因為言論過激一度被鎖定。
▲ 相關頁面引發大量討論,截至發稿討論條數為 271
據悉,TypeScript 是微軟基于 JavaScript 開發的編程語言,相對 JavaScript,其支持靜態類型系統,可以提升代碼安全性及運行效率。而原本以 JavaScript 為基礎的 Node.js 要支持 TypeScript 需要進行一系列轉譯理,在轉譯過程中 TypeScript 特有的類型會被丟棄(IT之家注:即“類型剝離”,Type Stripping)。
許多開發者認為相關類型剝離操作“并不簡單”,需要完整的 TypeScript 語法解析器才能實行,但 TypeScript 語法又不斷變化,因此 Node.js 添加 TypeScript 實驗性支持的行為反而降低了語言穩定性,還有可能導致未來用戶需要不斷更新 Node.js 版本才能支持 TypeScript 的所有功能。
而 Node.js 開發團隊則回應稱他們添加 TypeScript 實驗性支持是為了照顧“社區需求”,相關改進“是推動 Node.js 生態系統發展以及未來提供原生支持 TypeScript 的重要一步”,令加載 TypeScript 文件更為便利,而不需要安裝依賴項 / 專有加載程序。
Node.js 開發團隊同時表示,他們早已與社區就進行一輪討論,會在保持穩定、高性能的前提下實現類型剝離方案,目前 Node.js 開發團隊傾向于以解耦的方式分發獨立包令其獲得實驗性 TypeScript 支持,這樣既能維持 Node.js 核心穩定,也能夠保證其持續發展。