一、一些基本操作
1、Record
作用:能够快速的为object创建统一的key和value类型
Record
const user:Record
name: 'chengfeng',
age: 10
}
2、Partial <>
作用是将传入的属性变为可选项
interface iUser {
age: number;
name: string;
}
const user: Partial
age: 20,
};
定义的结构可以是接口iUser的任意key
3、Readonly <>
作用是将传入的属性变为变成只读
interface iUser {
age: number;
name: string;
}
const user: Readonly
age: 20,
name: chenfeng;
};
age、name属性就是只读的了
4、Required <>
作用是将传入的属性变为必选项
interface iUser {
age?: number;
name?: string;
}
const user1: Props = { name: 'zs' }; // OK
const user2: Required
5、Pick
作用:从一组属性中拿出某个属性,并将其返回
interface iUser {
age: number;
name: string;
sex: string;
}
type user = Pick
6、Omit
作用:从一组属性中排除某个属性,并将排除属性后的结果返回。
Omit的使用方法与Pick的结果是相反的,如果说Pick是取出,那么Omit则是过滤
interface iUser {
age: number;
name: string;
sex: string;
}
type user = Omit
7、Exclude
作用: 从一个联合类型中排除掉属于另一个联合类型的子集
Exclude
见栗子1:
type num= Exclude<‘1,2,3,4,5’, ‘1,3’> // { 2,4,5 }
见栗子2:
interface iUser1 {
age: number;
name: string;
sex: string;
}
interface iUser2 {
age: number;
name: string;
}
type user = Exclude
8、Extract
作用:跟Exclude相反,从从一个联合类型中取出属于另一个联合类型的子集
如果Exclude是取差集,那么Extract就是取交集。会返回两个联合类型中相同的部分。
见栗子1:
type num= Extract<‘1,2,3,4,5’, ‘1,3’> // { 1,3 }
见栗子2:
interface iUser1 {
age: number;
name: string;
sex: string;
}
interface iUser2 {
age: number;
name: string;
}
type user = Extract
二、一些易用方法
待补充