開篇
TypeScript 是由 C#語言的創始人 Anders Hejlsberg 設計的一種編程語言,設計的初衷就是為了幫助 JavaScript 的開發人員能像類似高級語言c#,Java那樣編寫代碼,比如使用高級語言的強類型、面向對象、語法檢查,代碼編譯等特點。TypeScript包含一個編譯器,可以將用TypeScript 編寫的代碼轉換為原生的 JavaScript。
TypeScript 目前最新的版本是 3.x 了,是目前微軟最好的產品之一,現在完全免費並且使用 Apache 協議開源了 TypeScript,並成為社區很活躍的框架之一。連谷歌這樣的死對頭,也擁抱 TypeScript ,在 Angular 2.0 版本就開始集成 TypeScript,如果你不學 TypeScript,Angular 這個框架就無法使用。目前 React 、Vue 在未來的版本都在考慮集成 TypeScript 。在可以預計的未來,如果還不開始學習 TypeScript,我們就不能使用這些框架的新特性了。
以下幾個觀點就是筆者強烈大家學習TypeScript的原因,純屬個人觀點,如有不恰當地方,歡迎各位指正。
01
JavaScript 發展迅速
從目前 JavaScript 的發展和應用趨勢來看,它的發展實在是太快了,你可以用它進行 web開發、移動應用開發、桌面軟件開發、后端開發,以及未來成為趨勢的 VR、WebGL及物聯網的應用開發等,它的標准從2015年開始每年都會更新,更新實在是太快了,及時這樣,但是與 java 和 c# 這些成熟的高級語言還有很大的距離。
使用 TypeScript 可以幫你降低 JavaScript 弱語言的脆弱性,幫你減少由於不正確類型導致錯誤產生的風險,以及各種 JavaScript 版本混雜造成錯誤的風險。
02
我們需要強類型的 JavaScript
從表面上看,TypeScript 像普通的 JavaScript 代碼,這一特點就降低我們初學者的難度,因此不得不佩服微軟的良苦用心。TypeScript 只是把高級語言的強類型這個最主要的特征引入 JavaScript ,就解決了防止我們在編寫 JavaScript 代碼時因為數據類型的轉換造成的意想不到的錯誤,增加了我們排查問題的困難性。它為 JavaScript 上了一把高級語言強類型的鎖,避免這類問題的產生,使用 TypeScript,你的代碼可能是這樣的:
也許你覺得這段代碼很平常,如果你這樣調用 increaseAge(cat),TypeScript會拋出一個錯誤,提示你 increaseAge 函數的參數必須是數字類型。如果使用原生的 JavaScript ,原生編譯器則不會產生錯誤,還能正常的返回 Merlin1 的內容,這可不是我們期望的,這就大大增加了我們開發過程中潛在的風險,排查錯誤的困難性。
這就是 TypeScript 的魅力所在,提前幫我們發現代碼出現錯的風險。
03
按需輸出 JavaScript 版本
前面提及到 JavaScript 發展迅速,估計 JavaScript 的創始人也沒有想到能發展到今天的地步,JavaScript 的版本現在幾乎每年都會有更新,如果你要寫出兼容性的腳本,對於每位開發者就是一個相當大的挑戰。TypeScript 卻很好的解決了此問題,你可以按需輸出你需要的腳本,比如 ECMAScript 3、ECMAScript 5 、ECMAScript 6 。
04
代碼標准化利於團隊開發
由於 JavaScript 本身語言的特點,還有其版本迭代太快的原因,團隊成員使用 JavaScript 時很容易隨意發揮,不受規范約束。你的團隊當然可以針對這些版本的 JavaScript 做出使用規范,引入一些代碼質量檢測插件,比如eslint。整理這些內容,估計就需要花不少的時間,在團隊推廣和使用制定的規范又要花一段時間。與其花這些時間進行整理,還不如在TypeScript 的基礎上,結合 TypeScript 的特點做一套標准即可來應對 JavaScript 版本不斷的更新迭代。
05
主流框架及最新特性的支持
文章一開始筆者都提及到 Angular 2.0 版本就開始集成 TypeScript,用於解決版本兼容性和弱語言的特點,從而互相推動了各自的發展。時至今日,React 、Vue也要加入 TypeScript 的陣營,因此我們不得不去學好 TypeScript。
除了主流前端框架集成的問題,還有一個重要的原因,TypeScript 緊跟 JavaScript 的發展,比如 ES7 、ES8、ES9 相關語言的新特性都支持,比瀏覽器支持的速度更快。這就意味着你能用最新的語言特性,編寫質量更高的 JavaScript。
如果你是 JavaScript 的新手,筆者不太建議你一上來就學習 TypeScript,建議你還是從基礎的 JavaScript 學起。之所以有 TypeScript 這個工具,並不是為了吸引開發者學前端,而是為每個 JavaScript 開發者能像其它高級語言一樣編寫更健壯的代碼。
當初之所以有 JavaScript 就是為了便攜和簡單性,但是隨着時間的發展,已經大大超出了當初設計者的初衷。如果是幾百行代碼還好,但是隨着多設備支持(pc、手機、各種移動終端及大屏設備),產品線的增長,項目越來越大,如果還用原始的方式編寫 JavaScript ,維護的難度可想而知。
學習TypeScript本身並不難。它像JavaScript一樣編寫和運行,只是增加一些新的理念和語法糖,我們學起來也會更加順手。
今天的內容就到這里,我說了這么多,以上純屬個人愚見,不知道是否能打動你去學習 TypeScript 呢 ?你有什么想法,歡迎到留言區發表你的意見。