TypeScript 的型別系統非常強大,因為它允許基於其他型別來表達型別。
這種思想最簡單的形式是泛型(Generics)。此外,我們還可以使用多種多樣的型別運算子。我們甚至可以根據已經擁有的值來表示型別。
透過結合各種型別運算子,我們可以以簡潔、可維護的方式表達複雜的操作和值。在本節中,我們將介紹如何根據現有的型別或值來表達新型別。
- 泛型 (Generics) - 接收引數的型別
- Keyof 型別運算子 - 使用
keyof運算子建立新型別 - Typeof 型別運算子 - 使用
typeof運算子建立新型別 - 索引訪問型別 (Indexed Access Types) - 使用
Type['a']語法訪問型別的子集 - 條件型別 (Conditional Types) - 在型別系統中表現得像 if 語句的型別
- 對映型別 (Mapped Types) - 透過對映現有型別中的每個屬性來建立型別
- 模板字面量型別 (Template Literal Types) - 透過模板字面量字串修改屬性的對映型別