TypeScript 筆記 - 型別上的 Widening 與 Narrowing
Type Widening
Type Widening 指的是 TypeScript 自動將較具體的 Literal Type 推論為較一般的型別。
範例
避免 Widening 的方法
- 使用
const關鍵字
- 明確型別註解(Type Annotation)
- 使用
as const斷言
Type Narrowing
Type Narrowing 指的是透過條件邏輯將變數型別從廣泛型別縮減到更明確的型別。
常見方法
1. 使用 typeof 判斷
2. 使用 Equality 方式判斷
3. 使用 in operator
4. 使用 instanceof
5. 自訂型別保護(Custom Type Guards)
Widening 與 Narrowing 比較
| 項目 | 說明 | 發生時機 |
|---|---|---|
| Widening | 將特定型別推廣為更一般的型別 | 變數初始化時 |
| Narrowing | 將廣泛型別縮小為明確的型別 | 條件邏輯或型別保護 |