Typescript(三)類型注解和類型推斷

1:type annotation 類型注解

就是在聲明變量的時候,顯式的聲明他的類型

let count: number;
count = 123;

這段代碼就是類型注解,意思是顯示的告訴代碼,我們的count變量就是一個數(shù)字類型,這就叫做類型注解。是不是一下就明白了,其實(shí)程序這東西就這么簡單,真正復(fù)雜的是人。

2:type inferrence 類型推斷

let countInference = 123;

這時候我并沒有顯示的告訴你變量countInference是一個數(shù)字類型,但是如果你把鼠標(biāo)放到變量上時,你會發(fā)現(xiàn) TypeScript 自動把變量注釋為了number(數(shù)字)類型,也就是說它是有某種推斷能力的,通過你的代碼 TS 會自動的去嘗試分析變量的類型。

3:工作使用問題(潛規(guī)則)

如果 TS 能夠自動分析變量類型, 我們就什么也不需要做了

如果 TS 無法分析變量類型的話, 我們就需要使用類型注解

(1):先來看一個不用寫類型注解的例子:

const one = 1;
const two = 2;
const three = one + two;

(2):再來看一個用寫類型注解的例子:

function getTotal(one, two) {
  return one + two;
}
 
const total = getTotal(1, 2);

這種形式,就需要用到類型注釋了,因?yàn)檫@里的one和two會顯示為any類型。這時候如果你傳字符串,你的業(yè)務(wù)邏輯就是錯誤的,所以你必須加一個類型注解,把上面的代碼寫成下面的樣子。

function getTotal(one: number, two: number) {
  return one + two;
}
 
const total = getTotal(1, 2);

這里有的一個問題是,為什么total這個變量不需要加類型注解,因?yàn)楫?dāng)one和two兩個變量加上注解后,TypeScript 就可以自動通過類型推斷,分析出變量的類型。

當(dāng)然 TypeScript 也可以推斷出對象中屬性的類型,比如現(xiàn)在寫一個小姐姐的對象,然后里邊有兩個屬性。

const XiaoJieJie = {
  name: "劉英",
  age: 18,
};

寫完后你把鼠標(biāo)放在XiaoJieJie對象上面,就會提示出他里邊的屬性,這表明 TypeScript 也分析出了對象的屬性的類型。

在寫 TypeScript 代碼的一個重要宗旨就是每個變量,每個對象的屬性類型都應(yīng)該是固定的,如果你推斷就讓它推斷,推斷不出來的時候你要進(jìn)行注釋。

有好的建議,請?jiān)谙路捷斎肽愕脑u論。

歡迎訪問個人博客
https://guanchao.site

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容