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