
首先,可以看到typescript的基礎(chǔ)類型有這些。
其中值得注意的是,never表示不會(huì)結(jié)束或者會(huì)出錯(cuò)(非常不常用)。void可以接受的返回值有undefined與null。假如我們需要用戶輸入一段值,它可以是數(shù)字或字符串,這個(gè)時(shí)候就用any。但是當(dāng)我們知道它是字符串的時(shí)候,位了獲取相應(yīng)的方法(獲取ide的提示),我們應(yīng)該強(qiáng)制轉(zhuǎn)換:
<string>zhangsan.other
zhangsan.other as string
有這兩種方法??蘸瘮?shù)默認(rèn)的返回值是undefined。
類型聲明
主要是給變量/常量,函數(shù)/方法和類成員的類型。有一個(gè)宗旨是,在可以明確推出其類型時(shí),可以不聲明類型。

可以看到,這里的構(gòu)造函數(shù)很明顯知道不會(huì)有返回值,所以可以不聲明類型。另外如定義字符串,常量等,也可以不聲明類型。

看這個(gè)例子,其中,如果saySomething函數(shù)不傳任何參數(shù),那么會(huì)報(bào)錯(cuò),因?yàn)楹瘮?shù)要求我們傳一個(gè)對(duì)象,傳的這個(gè)對(duì)象可以不給x,y賦值,因?yàn)樗心J(rèn)值。1/3是函數(shù)的參數(shù)的對(duì)象有默認(rèn)值,而2的是函數(shù)參數(shù)的對(duì)象的屬性有默認(rèn)值,但是首先得有對(duì)象傳入才可以。
ps:在寫栗子的過(guò)程中,我發(fā)現(xiàn)enum其實(shí)是一對(duì)象,那么函數(shù)的返回值可以是對(duì)象嗎?。。。經(jīng)過(guò)測(cè)試,是可以的:
enum Choose {
mother,
wife,
}
function getChoose(): object {
return Choose
}
getChoose()
不會(huì)報(bào)錯(cuò),看過(guò)文檔以后發(fā)現(xiàn),ts是包涵js所有的數(shù)據(jù)類型的。