Week 02 · Day 07 — 第二週總複習:TypeScript
學習目標
- 回顧本週所有 TypeScript 語法重點
- 能獨立寫出帶型別的程式碼
- 完成並通過本週作業
重點速覽
- 變數:
string/number/boolean,let可改、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. extends 與 implements 差別?
4. 聯合型別如何縮小型別範圍?
答案
1. 不回傳任何值 2. 不能 3. `extends` 繼承類別實作;`implements` 履行介面契約 4. 用 `typeof`(或 `instanceof`)檢查後分流作業
第二週作業(README)
- [ ] 完成 TypeScript 官方教學(typescriptlang.org)
- [ ] 練習宣告變數、函式、類別
- [ ] 建立一個簡單的 Animal 類別層級(Animal → Dog)
額外挑戰
- [ ] 用 interface + implements 建立一個「可列印」的文件類別
總結
TypeScript 是 Angular 的地基。你已掌握型別、函式、類別、繼承、介面。下一週把這些知識用進真正的 Angular 元件。