为什么要用TypeScript
以下是本人的一點(diǎn)拙見(jiàn),歡迎指正。
TypeScript的設(shè)計(jì)目的應(yīng)該是解決JavaScript的“痛點(diǎn)”:弱類型和沒(méi)有命名空間,導(dǎo)致很難模塊化,不適合開(kāi)發(fā)大型程序。另外它還提供了一些語(yǔ)法糖來(lái)幫助大家更方便地實(shí)踐面向?qū)ο蟮木幊獭?/p>
那先來(lái)看看TypeScript是如何解決這兩個(gè)問(wèn)題的。
?
一. 編譯時(shí)的強(qiáng)類型
TypeScript設(shè)計(jì)了一套類型機(jī)制來(lái)保證編譯時(shí)的強(qiáng)類型判斷。
最簡(jiǎn)單的,你可以申明變量的類型,那么任何其他類型的賦值將會(huì)引起編譯錯(cuò)誤。
例如
var foo: string; foo = true; //error: Cannot convert 'boolean' to string有意思的是,類似于C#的var變量聲明,TypeScript會(huì)對(duì)賦值的變量進(jìn)行類型推斷
例如
var bar = 0; bar = ''; //error: Cannot convert 'string' to 'number'強(qiáng)類型還有一個(gè)最大好處就是智能提示,例如你可以知道當(dāng)前變量具有哪些屬性和方法
?
二. 模塊化
利用TypeScript的關(guān)鍵詞module,可以達(dá)到類似于命名空間的效果,而export可以控制是否被外部訪問(wèn),舉個(gè)例子
從這個(gè)例子可以看出module可以嵌套,訪問(wèn)時(shí)用'.'作分隔符,也可以用'.'作為分隔符來(lái)簡(jiǎn)寫(xiě)module的嵌套,只有帶export關(guān)鍵詞的才可以被外部訪問(wèn),module可以合并,但是非export的對(duì)象在其他module下,即使是同一個(gè)名稱,也不能被訪問(wèn),如FuncA()。
?
其他的優(yōu)點(diǎn)
容易上手
個(gè)人覺(jué)得TypeScript的一個(gè)設(shè)計(jì)亮點(diǎn)就是它并沒(méi)有拋棄JavaScript的語(yǔ)法另起爐灶,而是做成了JavaScript的超集(這個(gè)功勞應(yīng)該記在Anders上),這樣任何合法的JavaScript的語(yǔ)句在TypeScript下都是合法的,也就是說(shuō)學(xué)習(xí)成本很低,如果你對(duì)JavaScript有比較深入的了解,那么其實(shí)可以很快的上手TypeScript,因?yàn)樗脑O(shè)計(jì)都是針對(duì)JavaScript的使用習(xí)慣和慣例。
?
已有的類庫(kù)可以很方便的使用
類似于C的頭文件,TypeScript允許你定義一些聲明,聲明已有的變量和類型,那么你可以很方便的用強(qiáng)類型的方式去調(diào)用已有的類庫(kù)。
?
語(yǔ)法糖
TypeScript可以實(shí)現(xiàn)類,接口,枚舉,泛型,方法重載等,用簡(jiǎn)潔的語(yǔ)法豐富了JavaScript的使用。
總結(jié)
以上是生活随笔為你收集整理的为什么要用TypeScript的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 想开一家公司怎么注册 这些技巧你没听过
- 下一篇: 加自选是什么意思