2016年5月22日 星期日

為什麼要使用TypeScript?

TypeScript logo

前端開發(Front-End)近年來在各種平台非常活躍,怎麼說呢?


越來越注重使用者介面,需要能力更強,開發更方便的 framework,因此出現了各種的 JavaScript framework。
  • 網頁端(Web)像是這兩年很夯的 AngularJS、React.js、Vue.js、D3.js...等等。
  • 伺服器端(Server Side)與網路相關應用,也可以使用 JavaScript 來寫,最經點的例子就是 Node.js,而且可以搭配其他 Framework 做到 JavaScript Universal,像是 Universal React 和 Angular Universal
  • 行動裝置端(大陸稱為移動端),當然也可以使用 JavaScript 來寫 Application,像是 React NativeCordovaIonic...等等。
也因為能使用的平台實在太多了,所以更有「得 JavaScript得天下 」的說法。

開發應用有大有小,而在開發大型應用的時候,要怎麼「不寫重複的 code」與「方便 debug」是很重要的!

因此,TypeScript 應運而生!


TypeScript 是什麼?

Anders Hejlsberg

開源的一個前端語言,由微軟開發主持,TypeScript 出自C#之父 Anders Hejlsberg 之手!

完全基於JavaScript的語法,有點像是「擴充版的 JavaScript」。

可執行於任何瀏覽器,開發於任何作業系統(OS)。

可使用 ES6 語法開發,執行於不支援 ES6 的瀏覽器。

TypeScript 有什麼優點?

  1. 強型別,幫助你檢查是否有型別不正確的低級錯誤,因為 JavaScript 是一個弱型別語言,所以在寫的時候並不會幫你檢查「語法是否打錯字」或是「型別對應不正確」的問題。
  2. 減少重複的 code,在 TypeScript 中可以利用類別(class)、建構子(constrator)、介面(interface)、繼承(inheritance)、模組(moudle)來設計你的程式(例如:物件導向),讓你像是寫強型別語言時一樣的輕鬆。
  3. 限制存取範圍:可以方法利用 public / private / protected 來限制存取權限,變數可以利用 let 來使用區域變數。
綜合以上的優點,其實就可以讓你再寫 TypeScript 的時候,有像是寫強型別的語言一樣輕鬆自在,IDE 也可以幫你檢查基本的錯誤,真的是一舉多得。

你是否有過,開發時還要查詢使用的語法是哪一版的 ES,且 User 的瀏覽器是否支援這個寫?


如果你也跟我有相同的困擾,那麼,我推薦你使用 TypeScript!

它,可以幫你解決這個問題,使「新的寫法」與「舊的瀏覽器」無縫接軌!

一張圖說明 TypeScript 涵蓋 ES 語法的情況

為什麼TypeScript可以做到?


在寫 TypeScript 的時候,我們寫的檔案會是 .ts 檔案,但瀏覽器只看的懂 .js,所以開發工具(IDE)會幫你編譯(compile)你寫的 .ts 檔案,變成 .js 檔案。

也就是說,假如你使用ES6的寫法來編寫 TypeScript,開發工具在編譯的時候就會幫你轉為「所有」瀏覽器看的懂得東西(ES5 語法)!

*ES5 語法:ECMAScript 5 是 JavaScript 的標準化規範,也是目前最多瀏覽器支援的版本。

現在有誰在使 TypeScript?


任何的 JavaScript 程式都可以使用 TypeScript 來開發,他就像是一個 JavaScript 的擴充套件一樣!

日前舉行的 NG-CONF 2016 在大會上他們也是大力推行使用 TypeScript 來做開發語言,所以由 Goolge 來開發的 AngularJS 2.0 也是推薦使用 TypeScript來開發!

TypeScript 都沒有缺點嗎?


TypeScript 實在是存在著滿滿的優點,如果硬是要說缺點,大概就是沒辦法像 JavaScript 不需要建置開發環境,隨寫隨用。但是一旦建置好開發環境,TypeScript 也是可以透過 IDE 來 compile 達到即見及所得的快感(?

補充說明


TypeScript的強型別寫法:


那麼,我們下次再見囉!