Creating Types from Types
tags: TypeScript
TypeScript 的型別系統非常強大,因為它允許我們使用其他型別去表達型別。
這個想法最簡單的形式就是泛型 (generics),在實際開發中可以使用各式各樣的型別運算子 (type operator) 來操作,也可以使用已經擁有的值來表示型別。
我們可以透過各種 type operator 去用簡潔、可維護的方式去表達複雜的操作以及值。在這個章節我們將介紹根據現有的型別或值來表達新型別的方法。
- Generics - Types which take parameters
- Keyof Type Operator - Using the
keyof
operator to create new types - Typeof Type Operator - Using the
typeof
operator to create new types - Indexed Access Types - Using
Type['a']
syntax to access a subset of a type - Conditional Types - Types which act like if statements in the type system
- Mapped Types - Creating types by mapping each property in an existing type
- Template Literal Types - Mapped types which change properties via template literal strings