微軟發(fā)布了一款 JavaScript 超集的編程語言并取名為 TypeScript衬吆,由于 TypeScript 是 JavaScript 的嚴格超集收恢,因此任何 JavaScript 都是合法的 TypeScript(非常像 C 和 Objective-C 的關系)境析。TypeScript 為 JavaScript 帶來了強大的類型系統(tǒng)和對 ES2015 的支持,它的編譯工具可以運行在任何服務器和任務系統(tǒng)上派诬。
事實上 ES2015 發(fā)布之后 JavaScript 取得了巨大的進步劳淆,但隨著設備性能的提升以及 JavaScript 在應用層上不斷占據了重要的位置,對于大型項目默赂,人們顯然需要更強大的語言級別的支持(微軟發(fā)現(xiàn)外部客戶在開發(fā)大規(guī)模 JavaScript 應用的過程中遭遇的語言本身的短板)沛鸵。
類型系統(tǒng)實際上是非常好的文檔,增強了編輯器在智能提示缆八,跳轉定義曲掰,代碼補全 等方向上的功能,并且在編譯階段能發(fā)現(xiàn)大部分的錯誤奈辰,對于大型工程的代碼可讀性和可維護性起到了了不起的作用栏妖。
TypeScript 的流行趨勢
事實上 TypeScript 擁有活躍的社區(qū),大部分第三方庫都有提供 TypeScript 類型定義文件奖恰,甚至知名的前端庫都完全使用 TypeScript 來進行開發(fā)吊趾,比如 Google 的 Angular宛裕,我們可以通過一些數據來了解 TypeScript 的流行趨勢:
TypeScript 的優(yōu)勢和收益是什么
TypeScript 官網上列了很多它的優(yōu)勢:
- 類型系統(tǒng)可在編譯階段發(fā)現(xiàn)大部分的錯誤;
- 類型系統(tǒng)也是一個很直觀的編程文檔论泛,可以查看任何函數或API的輸入輸出類型揩尸;
- 類型系統(tǒng)增強了編輯器或 IDE的功能;
- TypeScript 可以自動的推導類型屁奏;
- 一切 JavaScript 都是合法的 TypeScript 降低了使用成本岩榆;
- TypeScript 擁抱 ES2015 以及 ESNext 草案規(guī)范;
- 幾乎第三方庫都有 TypeScript 類型定義文件坟瓢。
rollbar 于 2018年統(tǒng)計了前端項目 Top10 的錯誤:https://rollbar.com/blog/top-10-javascript-errors/勇边,事實上 TypeScript 在編譯期的類型檢查能解決上述 80% 的問題,對于大型工程來說收益是非常明顯的折联。
如果你有一個需要長期維護的工程粒褒,那么類型系統(tǒng)在可讀性和可維護性上擁有比 JavaScript 更強大的動能,在良好的編程語境下崭庸,在穩(wěn)定的工具鏈幫助下怀浆,TypeScript 可以說是目前唯一較好的選擇谊囚。
當然怕享,凡事都有兩面性,TypeScript 有一定的學習成本镰踏,比如:Interfaces函筋、Generics、Enums 等前端工程師不是很熟悉的概念奠伪,短期內多少會增加一些開發(fā)成本跌帐,集成和構建一些庫會有一定的工作量,比如我們用 React 來開發(fā)一個前端工程绊率,那么你就需要進行一些配置谨敛,當然你也可以直接使用 create-react-app 來創(chuàng)建一個 TypeScript + React 工程