若是你真正使用過Typescript你會發現他實際上是javascript的超集, 這是一個很是簡潔的描述 ,之因此稱之爲Typescript,正是Type一詞的表述(強類型),可不單單是有一個Class就算強類型的。測試你也許仍是很是難以理解,這取決 與你的數學和統計學的課程的好壞,也許你不知道什麼叫作「超集」,那麼下面我就展現一個「 娃娃圓示意圖 」。javascript
下面的示意圖,描述的是咱們有一組數據A,和一數據B,B是A的超集,B包含了A的所有數據(你不能夠說A就是B,B就是A)。java
那麼TypeScript和ECMAScript6的狀況是同樣的,若是你能明白上述道理的狀況下:web
其實這二者的差別並非很大,二者有不少共性,若是你熟悉Typescript,你很容易就可以寫出ECMAScript6,反之亦然,可是若是你是一個初學者不明白他們倆的區別,建議你仍是應該從細節學習Typescript和ECMAscript6。typescript
咱們在開發中具體有哪些區別呢?下面咱們以IONIC2工程爲例,less
若是你使用JS開發,你須要這樣創建工程:ionic
ionic start MyApp Blank --v2學習
那麼你的文件擴展名應該是*.js,若是你使用webstrom開發,別忘了更改javascript的編譯配置,不然在開發中就會顯示錯誤了測試
那麼代碼應該是:ui
若是你使用的是Typescript,那麼應該使用以下命令創建工程,確保你生成的文件都是*.ts,順便說一句webstrom對於TS的支持很好,就是智能提醒有點慢。spa
ionic start MyApp blank --v2 --ts
而其中rootPage: any = HomePage;和構造期間的依賴注入constructor(platform: Platform)是Typescript專有的。
具體其中的區別,咱們下面詳細展現:
//EM6聲明局部變量 let myThing = "hello"; //Typescript聲明局部變量 let myThing: any = "hello";
那麼針對於依賴注入就更不同了,我還曾經高混過,其實小明很笨!
//EM6 static get parameters() { return [[Platform], [Http]]; } constructor(platform, http){ }
//Typescript
constructor(platform: Platform)
其實Ionic2團隊默認使用Typescript開發,這裏的緣由也許只有你很正參與開發纔會理解到的,因此若是你並未真正去了解他們,請不要發表意見。
另外TypeScript裝飾器(decorator)是基於ES7的裝飾器提案實現的,因此你就發現它們倆的差別性還不小呢。