Week 02 · Day 07 — 第二週總複習:TypeScript

學習目標

  • 回顧本週所有 TypeScript 語法重點
  • 能獨立寫出帶型別的程式碼
  • 完成並通過本週作業

重點速覽

  • 變數string / number / booleanlet 可改、const 不可改
  • 陣列number[]Array<number>
  • 介面:描述物件形狀,可用可選屬性 ?
  • 函式:參數與回傳都要型別,無回傳用 void
  • 箭頭函式const f = (a: number): number => ...
  • 可選參數greeting?: string聯合型別string | number + typeof
  • 類別constructor(public name: string) 簡寫、private/protected
  • 繼承extends 並覆寫方法
  • 介面實作implements

自我測驗

interface User { name: string; age: number }
const list: User[] = [
  { name: "A", age: 25 },
  { name: "B", age: 18 }
];
// 用箭頭函式 + filter,選出 age >= 20 的使用者姓名
(答案:list.filter(u => u.age >= 20).map(u => u.name)

試著回答: 1. 回傳 void 代表什麼? 2. private 屬性能從類別外讀取嗎? 3. extendsimplements 差別? 4. 聯合型別如何縮小型別範圍?

答案 1. 不回傳任何值 2. 不能 3. `extends` 繼承類別實作;`implements` 履行介面契約 4. 用 `typeof`(或 `instanceof`)檢查後分流

作業

第二週作業(README) - [ ] 完成 TypeScript 官方教學(typescriptlang.org) - [ ] 練習宣告變數、函式、類別 - [ ] 建立一個簡單的 Animal 類別層級(AnimalDog

額外挑戰 - [ ] 用 interface + implements 建立一個「可列印」的文件類別

總結

TypeScript 是 Angular 的地基。你已掌握型別、函式、類別、繼承、介面。下一週把這些知識用進真正的 Angular 元件。