一、keyof类型操作符
TypeScript中的keyof类型操作符可以获取某个类型的所有属性名组成的联合类型。这个操作符的作用是帮助开发者在静态类型检查中更准确地操作属性名。
有了属性名联合类型,我们可以在编写代码时更准确地操作属性名。以下是一些使用keyof的实际应用:
1. 动态获取对象的属性值
在这个例子中,getProperty函数的第一个参数是一个泛型类型的对象,第二个参数是对象的属性名。由于我们使用了keyof,所以在编写代码时我们可以确定属性名的类型,并且编译器也可以在编译时进行类型检查,保证我们不会误操作属性名或者试图访问不存在的属性。
2. 限制对象的属性种类
在这个例子中,createUser函数通过泛型限制了属性名的类型,而属性名的类型只能从Person的属性名中取值。在函数内部,我们可以安全地使用key来访问person对象的属性,因为key的类型是Person的属性名之一。如果我们试图传入一个不合法的属性名,编译器会及时提示错误。
3. 避免硬编码属性名
二、typeof类型操作符
1. 类型检查:可以用来检查变量的类型。例如,可以使用typeof操作符来检查变量是不是一个字符串。
2. 类型推断:可以使用typeof来推断函数返回值的类型。
3. 编写工具函数:可以使用typeof来编写工具函数,比如判断一个值是不是一个数组。
4. 简化重复代码:可以使用typeof来简化重复代码,比如初始化一个对象中的属性值。
三、索引访问类型
1. 动态访问对象属性
2. 动态访问数组元素
3. 动态访问元组元素
四、条件类型
1. 根据属性判断是否可选
2. 根据属性值判断是否满足条件
3. 根据类型之间的关系判断是否满足条件
4. 根据函数参数类型判断返回值类型
5. 根据对象类型判断是否有特定属性
五、类型推理infer
1. 从函数参数中推断类型
2. 从数组或元组中推断类型
3. 从Promise中推断类型
六、分布式条件类型
1、 基本使用
2、 分布式条件类型在泛型中的应用
3、 分布式条件类型在类型映射中的应用
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。