Tyescript是什麼?
Typescript整體使用和coffeeScript非常相似(因此有人說CoffeeScript給Ruby Developer用而Typescript是給C#Developer用)。但是,Typescript和CoffeeScript的理念是相反的,它並不反對直接寫javascript。
Typescript其實只是Javascript的super set,讓Javascript變成一個strong type的語言。因此,如果你在typescript裡面全部不用typescript語法,而都用javascript來寫,是完全可以的。
Typescript撰寫使用流程
1.
建立一個*.ts的檔案,開始寫typescript。
2.
完成之後透過一個typescript compiler變成javascript的js檔
3.
在需要的地方reference那個compile出來的js就好了。
Typescript的優勢
1.
為javascript帶來strong type - strong type的好處不止能夠讓我們有辦法在compile time 發現問題,同時讓我們在撰寫的時候更加方便,因為IDE才會有足夠的資訊幫助我們,例如intellisense,或者做refactoring的時候。
2.
提前嘗鮮一些Ecma 6的實作 - 目前還在確定中的ECMA
6 (javascript的下一個版本)裡面有提到一些例如Module的概念。雖然Ecma 6還沒有定案,但是Typescript 已經實作了目前ECMA的草案,因此透過寫Typescript能夠先瞭解Javascript新版本的動向。
3.
Typescript是一個開源的專案 - 開源意味著開發速度比較快(有其他community的support),同時表示不是只能夠用Visual Studio開發。目前已經有Eclipse 的Typescript插件,同時如果有在寫nodejs,可以透過npm快速取得Typescript compiler,因此開發環境是看你想用什麼就用什麼。
下面是從Typescript 1.0發佈的blog取來的兩張截圖,一個是VS Typescript的Intellisense,另外一個是Eclipse的Content Assist:
4.
使用Typescript不只是讓我們在寫javascript的時候有strong type的概念,同時對寫插件來說也非常方便。Typescript裡面有module的概念(可以想像成C#裡面 的namespace),在Typescript可以寫泛型(Generic)(相信寫過C#就知道泛型對於開發component有多重要)等。
5.
Debug帶來便利 - 我們可以在VS直接Debug Typescript(個人覺得比在瀏覽器debug javascript方便),同時透過source map,也可以在瀏覽器裡面debug。
Typescript的劣勢
1.
因為Typescript需要compile,因此通常都是寫在一個*.ts檔案。因此如果想在html裡面寫typescript不是那麼容易(注意,這邊說不是那麼容易,但是還是可以,因為有
能夠讓typescript在runtime裡面compile的方法)
2.
雖然Typescript語法簡單(基本上和javascript沒兩樣,只是多了需要declare型別而已),但是畢竟還是要學,因此有些effort要花。
為了讓 JavaScript 可以寫大型應用程式的商業邏輯所設計,讓 JavaScript 不再只是控制 DOM 而已,而是真的可以寫複雜商業邏輯。
TypeScript 既然稱為 TypeScript,重點就是將 JavaScript 加上 type。
- 更多型別 (more types) 與強型別檢查
- 多型 (interface)
- 泛型 (generic)
一旦有了型別,則很多圍繞在型別的技術都可在 TypeScript 使用。