Rick's DevNotes
筆記關於我作品集
筆記類別
  • 全部
  • DockerDocker
  • NetworkNetwork
  • RxJSRxJS
  • NginxNginx
  • TypeScriptTypeScript
  • Data_Structure_And_AlgorithmData Structure And Algorithm
  • JavaScriptJavaScript
  • PostgreSQLPostgreSQL
  • ReactReact
  • GitGit

© 2026 Rick's DevNotes. All rights reserved.

# TypeScript# Type

建立時間:2021/07/24

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將廣泛型別縮小為明確的型別條件邏輯或型別保護

參考資料

  • TypeScript Documentation