iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Modern Web

我與型別的 30 天約定:TypeScript 入坑實錄 系列

30 天,帶你從 TypeScript 零基礎一路闖關,打怪升級到型別大師!內容涵蓋基礎語法、泛型、型別守衛等進階技巧,最後再挑戰 React、Node.js 實戰專案。每天一點進步,累積下來就是翻天覆地的改變,讓你從此看型別不再心慌,重構不再冒冷汗。

鐵人鍊成 | 共 30 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文 團隊在峴港裸泳咕嚕咕嚕咕嚕曹軍團
DAY 21

Day 21|TypeScript 工具型別實戰:Pick / Omit / Partial / Required / Record / ReturnType 全解

在前面幾天,我們一直有用到一些工具型別(例如 Pick<User, "id" | "name">), 今天來...

2025-10-01 ‧ 由 馬克棒子 分享
DAY 22

Day 22|型別守衛與類型窄化:讓 TypeScript 幫你聰明收斂型別

1) 為什麼需要型別守衛? TS 的型別推論雖然很聰明,但在以下情境會「卡住」: ts CopyEdit type ApiResult = User | Api...

2025-10-02 ‧ 由 馬克棒子 分享
DAY 23

Day 23|泛型進階:打造可重用且型別安全的工具函式

1) 引言:為什麼要泛型? 在 JavaScript 裡,我們常常會寫一些「通用」的函式,例如: ts CopyEdit function first(arr)...

2025-10-03 ‧ 由 馬克棒子 分享
DAY 24

Day 24|條件型別:讓型別也能寫 if/else

1) 引言:型別也能做邏輯判斷? 在程式裡,我們經常會依條件來決定邏輯分支: ts CopyEdit if (isLoggedIn) { ... } else...

2025-10-04 ‧ 由 馬克棒子 分享
DAY 25

Day 25|映射型別:批量改造型別結構

1) 引言:為什麼需要映射型別? 假設我們有一個型別: ts CopyEdit type User = { id: string; name: stri...

2025-10-05 ‧ 由 馬克棒子 分享
DAY 26

Day 26|Template Literal Types:型別也能玩字串拼接

1) 引言:為什麼需要 Template Literal Types? 在 JavaScript 裡,我們可以用模板字串: ts CopyEdit const...

2025-10-06 ‧ 由 馬克棒子 分享
DAY 27

Day 27|型別驅動的表單生成器實戰

1) 引言:為什麼要「型別驅動」? 在前端專案裡,表單開發很常見,但有幾個痛點: 欄位定義重複:資料模型、表單 UI、驗證規則常常要寫三遍 型別不同步:改...

2025-10-07 ‧ 由 馬克棒子 分享
DAY 28

Day 28|型別安全的事件系統實戰

1) 引言:事件系統的痛點 在前端開發中,我們常常會定義事件系統,例如: ts CopyEdit emitter.on("userCreated&qu...

2025-10-08 ‧ 由 馬克棒子 分享
DAY 29

Day 29|型別驅動的 API 客戶端生成器:路徑、參數、回傳,一次到位

1) 引言:為什麼要型別驅動? 前端呼叫 API 常見痛點: 路徑拼錯:/api/user vs /api/users 參數型別錯:id 給了 number...

2025-10-09 ‧ 由 馬克棒子 分享
DAY 30

Day 30|總結與下一步:把 TypeScript 變成你的團隊超能力

今天不只回顧 30 天的內容,我會把「設計心法 → 專案落地檢查清單 → 升級路線」一次給齊。 你可以拿這篇當 團隊 Onboarding 指南,也能當自己做專...

2025-10-10 ‧ 由 馬克棒子 分享