TypeScript 创建类型
- 从类型创建类型
- ypeScript 的类型系统非常强大,因为它允许用其他类型表示类型。最简单的形式是泛型,我们实际上有多种类型的运算符可供使用。也可以用已有的值来表示类型。
- 泛型
- 软件工程的一个重要部分就是构建组件,不仅具有定义良好且一致的 API,而且可重用的组件。好的组件不仅能够兼容现今的数据类型,也能适用于未来可能出现的数据类型,这在构建大型软件系统时会给你最大的灵活度。
- keyof 操作符
- 对一个对象类型使用keyof操作符,会返回该对象属性名组成的一个字符串或者数字字面量的联合。
- typeof 操作符
- TypeScript 添加的 typeof 方法可以在类型上下文(type context)中使用,用于获取一个变量或者属性的类型。
- 索引访问类型
- 们可以使用索引访问类型(indexed access type)查找另外一个类型上的特定属性。因为索引名本身就是一个类型,所以我们也可以使用联合、keyof或者其他类型。
- 条件类型
- 很多时候,我们需要基于输入的值来决定输出的值,同样我们也需要基于输入的值的类型来决定输出的值的类型。条件类型(Conditional types)就是用来帮助我们描述输入类型和输出类型之间的关系。
- 映射类型
- 有的时候,一个类型需要基于另外一个类型,但是你又不想拷贝一份,这个时候可以考虑使用映射类型。映射类型基于索引签名的语法,用于声明尚未提前声明的属性类型。
- 模板字面量类型
- 模板字面量类型以字符串字面量类型为基础,可以通过联合类型扩展成多个字符串。它们跟 JavaScript 的模板字符串是相同的语法,但是只能用在类型操作中。当使用模板字面量类型时,它会替换模板中的变量,返回一个新的字符串字面量。