大家好~歡迎來到我的 「30 天 TypeScript 大冒險」
今天是第一天,先別急著打開編譯器,我們先來聊聊:
為什麼要學 TypeScript?
畢竟,學東西總得有點理由,不然三天就放棄了。
我超愛 JavaScript,靈活到不行,但當專案越做越大,就會開始踩雷:
number,結果跑進來 "123",還能照跑(但結果怪怪的)TypeScript 就像給你的程式加上「安全帽 + 保護殼」,
讓你在寫程式時就先發現坑,而不是上線才踩到。
function add(a, b) {
return a + b;
}
console.log(add(1, "2")); // "12"(字串相接,尷尬)
function addTS(a: number, b: number): number {
return a + b;
}
// Argument of type 'string' is not assignable to parameter of type 'number'
console.log(addTS(1, "2"));
差別在哪?
JS 是「我幫你跑看看,至於結果怎樣我不管」
TS 是「欸欸欸~你這樣不對喔,先改好再說」
假設後端給你的 API 原本回:
{
"name": "Mike",
"age": 25
}
結果哪天後端改成:
{
"fullName": "Mike Yang",
"age": 25
}
function greet(user) {
return `Hi, ${user.name}!`; // name 不見了,爆了
}
type User = { name: string; age: number };
function greet(user: User) {
return `Hi, ${user.name}!`;
}
// name 改掉的瞬間,全專案會幫你找出壞掉的地方
.ts 開始寫我這系列的目標就是讓你 每天花 15 分鐘左右,邊玩邊學,最後直接能在專案用起來。
哈囉!版主您好,非常期待您的「30 天 TypeScript 大冒險」系列!
這篇開頭就破題為什麼要學 TypeScript,點出專案變大後的痛點(型別混亂、改動風險、團隊溝通)真的非常到位,讓人很有共鳴。「安全帽 + 保護殼」和「型別就是契約」的比喻也超級生動,讓新手能快速理解 TS 的核心價值。特別喜歡您提到可以「慢慢來」導入的策略,這對許多舊專案來說會是很大的鼓勵。謝謝您的精彩分享!
也歡迎版主有空參考我的系列文「南桃AI重生記」:
https://ithelp.ithome.com.tw/users/20046160/ironman/8311