TypeScript與JavaScript的關(guān)系
TypeScript是JavaScript的超集,而且向這個(gè)語(yǔ)言添加了可選的靜態(tài)類(lèi)型和基于類(lèi)的面向?qū)ο缶幊獭?br> 上面的話摘自百度百科譬淳,用自己的理解概括一下:
-
可選的靜態(tài)類(lèi)型: TypeScript可以明確聲明變量的類(lèi)型姜钳,此變量的類(lèi)型在之后的使用中都不會(huì)變化劈愚,使代碼變得更加明確易讀(
如果你不是懶得寫(xiě)聲明的話...)疫铜。并且IDE中也會(huì)出現(xiàn)該類(lèi)型的語(yǔ)法支持镜硕。 - 基于類(lèi)的面向?qū)ο缶幊?/strong>:JavaScript其實(shí)也是有面向?qū)ο缶幊痰脑艘恚缦?/li>
function Person() {
//do something
}
var person1 = new Person();
由于JavaScript是一種基于原型的語(yǔ)言,它沒(méi)類(lèi)的聲明語(yǔ)句兴枯,比如C++或Java中用的血淌。這有時(shí)會(huì)對(duì)習(xí)慣使用有類(lèi)申明語(yǔ)句語(yǔ)言的程序員產(chǎn)生困擾。所以我們用typescript
TypeScript基本數(shù)據(jù)類(lèi)型
TypeScript不同于javascript這門(mén)弱類(lèi)型語(yǔ)言,提供了常用的數(shù)據(jù)類(lèi)型悠夯,這樣我們?cè)诰帉?xiě)的時(shí)候可以當(dāng)作強(qiáng)類(lèi)型語(yǔ)言那樣癌淮,可以避免很多在運(yùn)行時(shí)才能發(fā)現(xiàn)的問(wèn)題。下面即TypeScript中的數(shù)據(jù)類(lèi)型沦补。
bool類(lèi)型
作為最簡(jiǎn)單的但也是最常用的就是布爾類(lèi)型了乳蓄,只有true和false這兩種值
let isStarted: boolean = true;
這種形式,而是先通過(guò)let定義變量夕膀,然后在變量后跟上冒號(hào)虚倒,冒號(hào)后面才是真正的類(lèi)型。如果嘗試賦給他其他類(lèi)型變量就會(huì)報(bào)錯(cuò)产舞,也可以用
var isStarted:boolean = true;
聲明魂奥,let和var區(qū)別在于作用域,想要了解的話可以 點(diǎn)我
number類(lèi)型
和JavaScript一樣易猫,TypeScript里的所有數(shù)字都是浮點(diǎn)數(shù)捧弃。 這些浮點(diǎn)數(shù)的類(lèi)型是number。除了支持十進(jìn)制,Typescript還支持二進(jìn)制擦囊,八進(jìn)制和十六進(jìn)制违霞,代碼如下:
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
string類(lèi)型
跟其他的語(yǔ)言一樣在TypeScript中對(duì)應(yīng)的字符串類(lèi)型也是String,而我們可以通過(guò)("")雙引號(hào)或者('')單引號(hào)將字符串值括起來(lái)瞬场。兩者是等價(jià)的买鸽。
let name:string = 'yyf'
let name:string = "yyf"
array類(lèi)型
在TypeScript中你可以跟在JavaScript中一樣使用數(shù)組,在TypeScript中有兩種定義數(shù)組的方式贯被,其中一個(gè)方式就在類(lèi)型后面跟上([])方括號(hào)眼五。
let list: number[] = [5, 6, 8];
另一種方式就是利用Array類(lèi)型,后面的泛型參數(shù)可以傳入任意類(lèi)型彤灶。
let list2: Array<number> = [5, 6, 8];
enum類(lèi)型
相對(duì)JavaScript看幼,TypeScript增加了一個(gè)有用的基礎(chǔ)數(shù)據(jù)類(lèi)型,就是枚舉幌陕。我們可以利用更友好的方式替代純數(shù)字诵姜。
enum Color {
Red,
Green,
Blue
};
let c: Color = Color.Red;
枚舉默認(rèn)是從0開(kāi)始順序遞增的,可以修改第一個(gè)枚舉的值從而讓后面的枚舉值基礎(chǔ)這個(gè)值進(jìn)行遞增搏熄,比如下面這個(gè)寫(xiě)法:
enum Color {
Red = 1,
Green,
Blue
};
let c: Color = Color.Green;
除此之外我們也可以指定每個(gè)枚舉的值棚唆,比如下面這樣。
enum Color {
Red = 1,
Green = 2,
Blue = 4
};
any類(lèi)型
如果聲明為any類(lèi)型心例,會(huì)跳過(guò)編譯檢查宵凌,但是我們?yōu)榇司蜁?huì)失去類(lèi)型檢查。
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;
let notSureList: any[] = [1, "fa", false];
notSureList[0] = "das";
···