TypeScript 類型基礎(chǔ)——簡單類型

基本類型 string,number,和boolean作為最基本的類型可直接標(biāo)記字段。
interface關(guān)鍵字可用來聲明“接口”,接口是TS中引入的一個類型約束概念,可用來描述某一種對象的類型結(jié)構(gòu),對結(jié)構(gòu)中可能為“undefined”的字段(在對象實體中可能不存在該字段或者該字段值為undefined)聲明時冒號前要加問號,表示“可選”(在ts中和js相同,當(dāng)訪問對象上不存在的字段時會獲得undefined值,也就是說被賦值為undefined的字段和不存在的字段某種意義上相同,所以此處使用可選這個詞)。
使用示例:

type關(guān)鍵字可用來聲明“類型”,類型也是TS中引入的一個類型定義概念,寫法上是將一個定義好的類型描述結(jié)構(gòu)通過“=”號賦值給一個被type標(biāo)記的字段,類型結(jié)構(gòu)中可能不存在的字段冒號前加問號表示。
使用示例:
interface vs type
接口和類型之間看似界限模糊,但是interface具有一個type并不具備的能力,接口具有“可融合”的特性:
????在同一作用域當(dāng)中被重復(fù)定義的接口的定義內(nèi)容會累加到一起(兩次定義內(nèi)容取并集,第二次作為第一次的補(bǔ)充或者覆蓋),所以在定義user的時候會提示缺少gender字段。
? ? 另外在我的個人習(xí)慣上,更愿意將interface作為前后端傳輸數(shù)據(jù)的類型約束使用(服務(wù)端接口函數(shù)的參數(shù)約定,返回值描述),并且以大寫字母開頭讓她看起來更不像一個字段(字段的定義往往伴隨著類型的描述:const a : Type = xxx):
在type的使用上我更傾向?qū)⑵溆米銮岸隧椖糠秶鷥?nèi)的(也就是前端自用的)對象的聲明,比如我們?yōu)榱私y(tǒng)一格式編寫時間轉(zhuǎn)換函數(shù)時,函數(shù)的參數(shù)可以用一個我們自己定義的type來約束:
下一篇記錄一下聯(lián)合類型。