Pick 与 Omit TS内置类型
自我记录
Pick 与 Omit 从现有类型中得到可复用类型
从类型定义的属性中,选取指定一组属性,返回一个新的类型定义。
Pick 可以从一个对象类型中 取出某些属性
Omit 可以从一个对象类型中 排出某些属性
type Pick<T, K extends keyof T> = {
[P in K]: T[P];
};
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
Pick
使用方法
type Person = {
name: string
age: number
id: number
}
type PickPerson = Pick<Person, 'age'>
// PickPerson === { age: string }
type PickPerson = Pick<Person, 'age' | 'id'>
// PickPerson === { age: string , id: string}
Omit
使用方法
type Person = {
name: string
age: number
id: number
}
type OmitPerson = Omit<Person, 'age'>
// OmitPerson === { name: string , id: string }
type OmitPerson = Omit<Person, 'age' | 'id'>
// OmitPerson === { name: string}
Partial 与 Required TS内置类型
自我记录
Partial 把对象类型的属性全部转换为
可选属性
Required 把对象类型的属性全部转换为必选属性
Partial
使用方法
type Person = {
name: string
age: number
id: number
}
type PartialPerson = Partial<Person>
// PartialPerson === type PartialPerson = {
// name?: string | undefined;
// age?: number | undefined;
// id?: number | undefined;
//}
Required
使用方法
type Person = {
name?: string
age?: number
id?: number
}
type RequiredPerson = Required<Person>
// RequiredPerson === type RequiredPerson = {
// name: string
// age: number
// id: number
//}
enum TS内置类型
作用:表示一组明确可选的值,和字面量类型配合联合类型类似。
解释:枚举可以定义一组常量,使用该类型后,约定只能使用这组常量中的其中一个。
枚举基本语法
默认从 0 开始自增的数值
可以使用字符串,但是后面的值都需要使用字符串。
建议ts
文件定义枚举,枚举的值经常需要在运行的时候使用,d.ts
不参与运行
枚举类型需要在 ts 文件中,因为枚举会编译成 js 代码
enum
使用方法
// 创建枚举类型 默认顺序就是 0 | 1 | 2 | 3
enum Direction { Up, Down, Left, Right }
// 自定义顺序就是 1 | 2 | 3 | 4
// enum Direction { Up = 1, Down, Left, Right }
// 自定义顺序就是 5 | 6 | 7 | 8
// enum Direction { Up = 5, Down, Left, Right }
// 自定义顺序就是 5 | 10 | 19 | 30
// enum Direction { Up = 5, Down = 10, Left = 19, Right = 30 }
// 使用枚举类型
const changeDirection = (direction: Direction) => {
console.log(direction)
}
// 调用函数时,需要应该传入:枚举 Direction 成员的任意一个
// 类似于 JS 中的对象,直接通过 点(.)语法 访问枚举的成员
changeDirection(Direction.Up)