如果寫 JavaScript 一段時間,應該多少遇過程式可以跑、畫面也出來了,但某個按鈕一點就壞,錯誤訊息還指向一個你完全沒想到的地方。
TypeScript 的核心價值,其實就是把「執行時才會爆的錯」,盡量提前到你寫程式的時候就發現。
JavaScript 很好上手,是因為它幾乎不管你資料怎麼用。
function add(a, b) {
return a + b;
}
add(1, "2"); // 結果是 "12"
語法完全合法,程式也不會報錯
但這個結果,通常不是我們真正想要的
TypeScript 不會改變 JavaScript 的執行方式,它只是多問一句:「你確定這裡應該是數字嗎?」
function add(a: number, b: number) {
return a + b;
}
add(1, "2"); // 編輯器就已經提醒你不對了
這個錯誤不是瀏覽器丟給你的,
而是你還沒存檔、還沒部署,編輯器就先阻止你。
新手最常遇到的問題通常是:
TypeScript 不會幫我們寫邏輯,
但會逼你在寫的當下想清楚資料長怎樣~
他雖然不會讓你寫得比較快,
但會讓你少修很多奇怪的 bug喔!