第七节:在 TypeScript 中什么是类型推论?
上一節(jié),我們學(xué)習(xí)了TypeScript中的一種新的數(shù)據(jù)類型:元組Tuple。沒(méi)學(xué)習(xí)上一節(jié)的同學(xué)可以戳:《又一種新的數(shù)據(jù)類型:元組Tuple》?
這一節(jié),我們一起來(lái)學(xué)習(xí)一下TypeScript中的:類型推論。?
第五節(jié)我們介紹《任意值any》的時(shí)候有講過(guò),我們定義一個(gè)變量的時(shí)候,如果沒(méi)有給它指定類型,也沒(méi)有給它賦值,那么這個(gè)變量就會(huì)被當(dāng)作任意值any類型來(lái)處理,可以給它賦任意類型的值。?
任意值any類型
回顧一下:
? //未指定任何類型
? let notSureType;
? //允許賦string類型的值
? notSureType = 'hello';
? //允許賦number類型的值
? notSureType = 2;
?
相當(dāng)于:
?
??//指定為any類型
?let notSureType:any;
? //允許賦string類型的值
? notSureType = 'hello';
? //允許賦number類型的值
? notSureType = 2;
?
但以上的寫(xiě)法中,有一點(diǎn)需要注意的前提條件是:定義變量的時(shí)候,變量是沒(méi)有被賦值的。如果在定義變量的時(shí)候沒(méi)有指定類型,但又賦值了,會(huì)發(fā)生什么情況呢?
?
//未指定變量類型,且進(jìn)行賦值
let sentence = "hello 前端君";
上面的一行代碼,我們看到,變量?sentence?定義的時(shí)候并沒(méi)有指定類型,但已賦值字符串:”hello 前端君”。
這種情況,和第一個(gè)任意值any案例聲明變量未指定類型,未賦值有什么區(qū)別呢?
我們對(duì)變量 sentence 做一個(gè)操作就知道了:
?
//未指定變量類型,且進(jìn)行賦值
let sentence = "hello 前端君";
//賦數(shù)值類型的值:100
sentence = 100;
//結(jié)果:編譯報(bào)錯(cuò)
?
我們看到了,編譯報(bào)錯(cuò)。
提示:Type 'number' is not assignable to type'string'
意思是:數(shù)值number類型的值不能賦值給字符串string類型的變量。?
奇怪了,我們并沒(méi)有給變量?sentence?指定類型,為什么現(xiàn)在說(shuō)它是string類型呢??
類型推論
這是因?yàn)門ypeScript的類型推論在起作用了。?
類型推論:如果沒(méi)有明確的指定類型,那么 TypeScript會(huì)依照類型推論的規(guī)則推斷出一個(gè)類型。
很明顯,以上的案例中的?sentence?被推論為字符串string類型,而非任意值any類型,所以后續(xù)給它賦數(shù)值number類型的值7時(shí),會(huì)報(bào)錯(cuò)。?
這一節(jié)主要是提醒大家,在TypeScript中,當(dāng)你去定義一個(gè)變量時(shí),沒(méi)有指定類型時(shí)候,是否給它賦值,是會(huì)影響它的類型的。?
前端君給大家作個(gè)圖,讓大家更直觀的理解它們的區(qū)別:
(一目了然)
熱門文章
TypeScript系列,正在連載 。。。
?第1章節(jié):《大白話,初識(shí)TypeScript》
?第2章節(jié):《輕輕松松,安裝TypeScript》
?第3章節(jié):《快速編譯TypeScript,提高開(kāi)發(fā)效率》
?第4章節(jié):《5種數(shù)據(jù)類型在TypeScript中的運(yùn)用》
?第5章節(jié):《強(qiáng)大的數(shù)據(jù)類型:any任意值》
?第6章節(jié):《新的數(shù)據(jù)類型:元組Tuple》
?后續(xù)章節(jié),陸續(xù)更新,敬請(qǐng)期待...
擴(kuò)展閱讀
?原創(chuàng)教程:《ECMAScript 6 教程》
?原創(chuàng)教程:《Vue2.0基礎(chǔ)教程》
?原創(chuàng)教程:《Vue2.0進(jìn)階教程》
?附加習(xí)題:《ECMAScript 6 教程》的 2套
?附加習(xí)題:《Vue2.0基礎(chǔ)教程》的 1 套
聊聊職場(chǎng)
?職場(chǎng)感悟:混口飯吃,談不上喜歡
?感到迷茫:我很努力,但依然很迷茫
?薪資待遇:那么點(diǎn)工資,能招到人嗎?
?搞笑黑話:互聯(lián)網(wǎng)公司黑話,搞笑到爆
?職業(yè)自由:程序員職業(yè)自由的6個(gè)階段
資源推薦
其實(shí)學(xué)好技術(shù)并不難,架構(gòu)師免費(fèi)分享全網(wǎng)全套最新web前端、JavaScript、HTML5、PHP、數(shù)據(jù)庫(kù)……等視頻資料!
[總價(jià)值超3萬(wàn)!]年薪35萬(wàn)以上的大牛幾乎都看了!
加微信:?abc15689893?免費(fèi)領(lǐng)取,由于領(lǐng)取的朋友比較多,所以加微信時(shí)一定要備注:7,否則很難通過(guò)。
?
總結(jié)
以上是生活随笔為你收集整理的第七节:在 TypeScript 中什么是类型推论?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 科大星云诗社动态20210224
- 下一篇: 科大星云诗社动态20210223