了解TypeScript中的條件類型(conditionaltype)功能

了解TypeScript中的條件類型(conditionaltype)功能

TypeScript 條件類型(conditional type)

TypeScript 條件類型(conditional type) 是 TypeScript 3.0 版本新增的功能,它可以讓開發者在型別定義時,根據條件來決定型別的變化。

什麼是條件類型

條件類型是一種型別轉換,它可以根據某個條件,將一個型別轉換成另一個型別。它的語法是 T extends U ? X : Y,其中 T 是一個型別,U 是一個型別,XY 是兩個型別,如果 T 繼承自 U,則結果為 X,否則結果為 Y

舉個例子,假設我們有一個型別 T,它可以是 stringnumber,我們可以使用條件類型來決定 T 的型別:

type T = T extends string ? string : number;

上面的程式碼會將 T 的型別決定為 stringnumber,取決於 T 是否繼承自 string

條件類型的應用

條件類型可以用於許多不同的場景,例如:

  • 將一個型別轉換為另一個型別,例如將 string 轉換為 number
  • 將一個型別轉換為另一個型別的子類型,例如將 string 轉換為 string | number
  • 將一個型別轉換為另一個型別的聯合類型,例如將 string 轉換為 string & number
  • 將一個型別轉換為另一個型別的交集類型,例如將 string 轉換為 string & number
  • 將一個型別轉換為另一個型別的差集類型,例如將 string 轉換為 string & number
  • 將一個型別轉換為另一個型別的反向類型,例如將 string 轉換為 string & number

結論

TypeScript 條件類型(conditional type) 是 TypeScript 3.0 版本新增的功能,它可以讓開發者在型別定義時,根據條件來決定型別的變化。條件類型可以用於許多不同的場景,例如將一個型別轉換為另一個型別、將一個型別轉換為另一個型別的子類型、將一個型別轉換為另一個型別的聯合類型等等。TypeScript 條件類型可以讓開發者更加靈活地定義型別,提高開發效率。

推薦閱讀文章

推薦閱讀文章

            <a href="https://www.typescriptlang.org/docs/handbook/advanced-types.html">TypeScript 條件類型(conditional type)官方文件</a><br>
            <a href="https://ithelp.ithome.com.tw/articles/10205050">TypeScript 條件類型(conditional type)簡介</a><br>
            <a href="https://medium.com/@martin_hotell/advanced-types-in-typescript-2-8-2a8f1777af4c">TypeScript 條件類型(conditional type)實戰</a><br>
            <a href="https://medium.com/@jeffrey.allen.lewis/typescript-conditional-types-in-depth-2e6d06868fcc">TypeScript 條件類型(conditional type)深入探討</a><br>
            <a href="https://ithelp.ithome.com.tw/articles/10205050">TypeScript 條件類型(conditional type)應用</a

延伸閱讀本站文章

更多TypeScript相關文章

推薦學習youtube影片

發佈留言