在明後天進行相對枯燥的”型別”介紹前,我們必須知道JavaScript跟TypeScript的關係(我現在才意識到我鐵人賽的主題上,”T”ype”S”cript的T跟S忘了大寫,我的題目完全打錯了...),以及TypeScript這個語言(工具)之所以出現,是為了解決什麼樣的事情。
相信大家在學JavaScript的時候,一定都會讀到這麼一句話:「JavaScript 是個弱型別(loosely typed)語言」,如果你跟我一樣,一開始接觸就是JavaScript,一定會對這句話感到困惑,因為我們在寫一般JavaScript時,的確不需要去宣告一個變數的型別。但是例如C語言,就必須特地寫出”型別 變數 [=值]”。
int age; //但暫不給變數值,只宣告它是interger
int price = 200
但JavaScript就不是這一回事,我們可以:
let age = 18 //不用宣告任何型別,直接讓這變數age代表數字
age = “I’m not type of age” //從數字變成字串
age = { name : ”John” } //從字串再變成物件
//這三行完全是合法的JS
我們完全不用在JS變數前面宣告:「這個變數必須是數字/字串/浮點數」,就能正常運作,甚至能切換成不同型別!酷吧!
但如果你是用const宣告,就另當別論了。
講到這邊,大家有看出弱型別的問題嗎?(儘管我自己是很愛這種可變動性啦)
就算開發者看到let age = 18
大概能依約定俗成去猜出age會是Number,且之後也會是Number(除了數字,我還真不知有什麼型別能/適合給age使用),但想要改age這個變數的型別是隨時隨地都可以的(雖然不會有人這麼白目去亂改啦)。而TypeScript作為一個"強型別"的語言(工具)就是為了要處理這個”不太穩定”的狀況而誕生的。
至於TypeScript確切要怎麼幫助身為開發者的我們,我們下一篇再聊。