ECMAScript6 VS TypeScript



        如果你真正使用過Typescript你會發現他其實是javascript的超集, 這是一個非常簡潔的描述 ,之所以稱之為Typescript,正是Type一詞的表述(強類型),可不僅僅是有一個Class就算強類型的。測試你也許還是非常難以理解,這取決 與你的數學和統計學的課程的好壞,也許你不知道什么叫做“超集”,那么下面我就展示一個“ 娃娃圓示意圖 ”。

        下面的示意圖,描述的是我們有一組數據A,和一數據B,B是A的超集,B包含了A的全部數據(你不可以說A就是B,B就是A)。

        那么TypeScript和ECMAScript6的情況是一樣的,如果你能明白上述道理的情況下:

        其實這兩者的差異並不是很大,兩者有很多共性,如果你熟悉Typescript,你很容易就能夠寫出ECMAScript6,反之亦然,但是如果你是一個初學者不明白他們倆的區別,建議你還是應該從細節學習Typescript和ECMAscript6。

        我們在開發中具體有哪些區別呢?下面我們以IONIC2工程為例,

        如果你使用JS開發,你需要這樣建立工程:

        ionic start MyApp Blank --v2

        那么你的文件擴展名應該是*.js,如果你使用webstrom開發,別忘了更改javascript的編譯配置,否則在開發中就會顯示錯誤了

那么代碼應該是:

        如果你使用的是Typescript,那么應該使用如下命令建立工程,確保你生成的文件都是*.ts,順便說一句webstrom對於TS的支持很好,就是智能提醒有點慢。

        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的裝飾器提案實現的,所以你就發現它們倆的差異性還不小呢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM