什么是類(lèi)型推斷?
在 TypeScript 中, 如果聲明變量時(shí),
沒(méi)有明確的指定類(lèi)型
,那么 TypeScript會(huì)依照類(lèi)型推論(Type Inference)的規(guī)則推斷出一個(gè)類(lèi)型。
以下代碼雖然沒(méi)有明確指定類(lèi)型
,但是會(huì)在編譯的時(shí)候報(bào)錯(cuò):
let myiten = "字符串"
myiten = 123
事實(shí)上,它等價(jià)于:
let myiten:string = "字符串"
myiten = 123
TypeScript 會(huì)在沒(méi)有明確的指定類(lèi)型的時(shí)候,可以根據(jù)初始化默認(rèn)賦值的類(lèi)型,推測(cè)出一個(gè)類(lèi)型,默認(rèn)把初始值的類(lèi)型,就當(dāng)做變量的類(lèi)型
,這就是類(lèi)型推論。
如果定義的時(shí)候沒(méi)有明確指定類(lèi)型,并且也沒(méi)有初始化賦值
,那么不管之后有沒(méi)有賦值,都會(huì)被推斷成 any
類(lèi)型而完全不被類(lèi)型檢查:
let myiten
myiten = false;
myiten = undefined;
myiten = "字符串";
console.log(myiten.length); //不會(huì)報(bào)錯(cuò)
myiten = 123;
console.log(myiten.length); //這里會(huì)報(bào)錯(cuò),因?yàn)?myiten 已經(jīng)不再是 String了,類(lèi)型已經(jīng)被更改了,如果再讀取 字符串的方法,就會(huì)報(bào)錯(cuò)。
作為函數(shù)時(shí),如果沒(méi)有手動(dòng)指定返回值類(lèi)型
,則也會(huì)根據(jù)我們的 實(shí)際返回值,進(jìn)而推斷出返回值類(lèi)型。
類(lèi)型別名
語(yǔ)法:type 別名 = 類(lèi)型
- 類(lèi)型別名概念:主要用來(lái)給一個(gè)給較為復(fù)雜的類(lèi)型起個(gè)
新名字
。 - 作用:
把多個(gè)類(lèi)型合并為一個(gè)類(lèi)型
- 好處:簡(jiǎn)化和復(fù)用類(lèi)型
上案例:
給數(shù)組定義類(lèi)型時(shí)
采用,類(lèi)型別名
type TypeItem = (string | number); //給類(lèi)型自定義名稱(chēng)
type str = boolean | number | Boolean; //給類(lèi)型自定義整合名稱(chēng)
let arr: TypeItem[] = [456]; //給變量直接賦值類(lèi)型別名
let arr1: Array<str> = [123, false];//給變量直接賦值類(lèi)型別名
let arr2: Array<(TypeItem)> = [123, "字符串"];//給變量直接賦值類(lèi)型別名
type un = TypeItem | str; //甚至還可以通過(guò)type 將多個(gè)類(lèi)型別名進(jìn)行再次整合。
let arrun: Array<un> = [789, "array", false]; //給變量賦值類(lèi)型別名二次整合后的。
當(dāng)
類(lèi)型別名運(yùn)用在普通變量和函數(shù)身上時(shí):
type TypeItem = (string | number);
type str = boolean | null;
type un = TypeItem | str;
//類(lèi)型別名用在普通變量身上
let a: un = false;
a = null;
a = false;
a = 456;
a = "fe";
a = {} //會(huì)報(bào)錯(cuò),所屬類(lèi)型不包含 OBJ{} //不能將類(lèi)型“{}”分配給類(lèi)型"“un”。
//類(lèi)型別名用在函數(shù)身上
function fn(a: un, b: un): un {
return {} //會(huì)報(bào)錯(cuò),返回值所屬類(lèi)型不包含 OBJ{} //不能將類(lèi)型“{}”分配給類(lèi)型"“un”。
}
類(lèi)型別名常用于
聯(lián)合類(lèi)型
。作用好處是,簡(jiǎn)化和復(fù)用類(lèi)型
。
總結(jié):
本章節(jié)給大家介紹了在 【TypeScript】 中 類(lèi)型推斷
的解讀,以及定義類(lèi)型別名
的使用方式。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-603983.html
???♂? 博主座右銘:向陽(yáng)而生,我還在路上!
——————————————————————————————
??博主想說(shuō):將持續(xù)性為社區(qū)輸出自己的資源,同時(shí)也見(jiàn)證自己的進(jìn)步!
——————————————————————————————
???♂? 如果都看到這了,博主希望留下你的足跡!【??收藏!??點(diǎn)贊!??評(píng)論!】
——————————————————————————————文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-603983.html
到了這里,關(guān)于【TypeScript】類(lèi)型推斷與類(lèi)型別名的使用方式。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!