typescript工具类型Partial、Pick、Omit
介绍typescript中的几个工具类型的使用。
假设当前我们有一个Person类型, 当我们使用Person类型的时候需要定义它的全部变量,使用起来灵活度太低,以下有几种方法可以让我们更灵活的使用类型
type Person = {
name: string,
age: number,
hobby: string
}
let obj: Person = { name: 'jack'} // 类型“{ name: string; }”缺少类型“Person”中的以下属性: age, hobby
-
Partial:使用Partial来将已声明的类型中的所有属性标识为可选的。
const usePartial: Partial<Person> = {}
- Pick: 从声明的类型中选择指定的属性生成新的类型。
// 类型PickPerson包含类型Person的name和hobby属性 type PickPerson = Pick<Person, 'name' | 'hobby'> const usePick: PickPerson = { name: 'jack', hobby: 'swim' }
-
Exclude:用于排除不需要的属性,最后的到的是排除后的属性,常用来配合其他的方法使用。
type PersonKeys = keyof Person; // "name" | "age" | "hobby" type Age = Exclude<PersonKeys, 'name' | 'hobby'> // 等价于 type Age = "age"
-
Omit:从声明的类型中删除指定的属性生成新的类型。
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;Omit方法中使用了 Exclude 和 Pick方法。结合一个小例子理解这个方法。type OmitPerson = Omit<Person, 'name'> // 第一步执行Exclude方法,Exclude<keyof Person, 'name'>, 等价于 'age' | 'hobby' // 第二步执行Pick方法,Pick<Person, 'hobby' | 'age'> 从类型Person中选择 'age' | 'hobby'属性 // 因此type OmitPerson = {age: number, hobby: string } const useOmit1: OmitPerson = { age: 10, hobby: 'swim' }
分类:
typescript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律