轉(zhuǎn)發(fā):微軟MVP 盧建暉 的文章,希望對大家有幫助。原文:http://blog.csdn.net/kinfey/article/details/44568971
編者語 : 人總會多次犯錯,歷史上告誡大家不要在演講前更新最新版本的軟件,但周末我又一次錯了......好吧下次我堅(jiān)決錄屏。本來約好周日和大家見,但深圳回來后又是各種的會議耽擱到現(xiàn)在真的不好意思。大家想我了嗎?上周發(fā)了4篇,貌似效果都不錯,謝謝徐總和善友的微信推廣。感恩,感謝有這群好兄弟的支持!今天和大家聊聊TypeScript 。有人覺得這個話題與ASP.NET 5 無關(guān)但是個人覺得關(guān)系比較密切,畢竟你要做前端 。
什么是TypeScript ?
TypeScript 是javaScript 的超集,它給Javascript帶來了面向?qū)ο?,也帶來了靜態(tài)類型。在你的項(xiàng)目中不需要修改任何現(xiàn)有JavaScript代碼就可以注入TypeScript代碼。通過TypeScript你可以規(guī)范JavaScript代碼方式并以面向?qū)ο蟮姆绞綐?gòu)建你的前端。TypeScript已經(jīng)支持現(xiàn)在流行的JavaScript庫,讓你更容易去和現(xiàn)有項(xiàng)目結(jié)合,如Jquery/AngularJS/KnockoutJS/NodeJS等。(進(jìn)入官方網(wǎng)站)
TypeScript環(huán)境配置
1.安裝
npm install -g typescript
2.開發(fā)環(huán)境
個人建議還是在Sublime Text ,通過Control Package 安裝Better TypeScript .
TypeScript的幾個主要特點(diǎn)
1. 靜態(tài)類型
TypeScript通過靜態(tài)類型規(guī)范了JavaScript變量的聲明,并在編譯時提供類型檢查。如下圖
這里定義了一個類,并在類中定義了一個getJSON的方法,這里結(jié)合靜態(tài)類型對方法所傳送的參數(shù)進(jìn)行類型定義, 并返回void。如果你用傳統(tǒng)的JavaScript寫,雖然弱類型的方式比較方便,但是對于傳參的類型不明確。通過TypeScript你就可以像C/C++那樣編寫你的前端代碼。這里說明一點(diǎn),當(dāng)你對于對象的類型不太明確時你可以用any(動態(tài)類型)取代。
2. 面向?qū)ο?/strong>
TypeScript為JavaScript帶來了interface/class/module等面向?qū)ο蟮奶匦?。這個好處除了規(guī)范代碼,也可以規(guī)范前端項(xiàng)目結(jié)構(gòu)。以往我們的JS項(xiàng)目用傳統(tǒng)的MVC/MVVM入手總因?yàn)镴avaScript太過靈活,導(dǎo)致架構(gòu)無從入手。通過TypeScript你可以利用面向?qū)ο笕フ夏愕那岸舜a。
3.ts編譯器
通過tsc 可以將TypeScript的ts文件編譯為通用的JavaScript文件。當(dāng)然你可以選擇預(yù)編譯的方式,也可以選擇實(shí)時編譯的方式。還是那句咸魚白菜各有所愛,就看自身需求。而我在項(xiàng)目中我喜歡用預(yù)編譯。
4.第三方庫支持(關(guān)于第三方庫的對應(yīng)TypeScript可以從這里獲取)
現(xiàn)在TypeScript都和主流的庫都有匹配對應(yīng),你可以從nuget/上面的鏈接中獲取。本人架構(gòu)前端基本上基于AngularJS/KnockoutJS, 基本上沒有大問題。更可喜的是AngularJS 2.0 和TypeScript進(jìn)行了更加深入的整合(Google+Microsoft)。
基于TypeScript的前端,讓你寫代碼更Cool,更不會再讓你為一些奇怪的語法而迷惑。我喜歡TypeScript,你呢?
歡迎關(guān)注本博客微信訂閱號 anb-io。每周推送內(nèi)容,有技術(shù)也有生活,和你一起做一個有情懷的程序猿。
新聞熱點(diǎn)
疑難解答
圖片精選