ts工具类
常用类型与实现
Partial : 将类型 T 的所有属性标记为可选属性
type Parital <T> = {
[P in keyof T]? : T[P]
}
Required : Required 将类型 T 的所有属性标记为必选属性
type Required <T> = {
[P in keyof T]-? : T[P]
}
Readonly : Required 将类型 T 的所有属性标记为只读属性
type Readonly <T> = {
readonly [P in keyof T] : T[P]
}
Pick : 从某个类型中过滤出某个或某些属性,返回过滤出来的内容
type Pick <T,P extends keyof T> = {
[K in P] : T[K]
}
Omit : 从某个类型中剔除掉某个或某些属性,返回剔除后剩下的内容
type Omit<T, K extends keyof any> = {
[P in Exclude<keyof T, K>] : T[P];
}
Record : 标记key与value类型
## type Record <T extends keyof any, P > = {
[K in T]:P
}
Exclude : 移除特定类型中的某个(些)属性
type Exclude<T,U> = T extends U ? never : T;
type E1 = Exclude<keyof any, number | symbol>;
Extract : Exclude 的反操作,取 T,U 两者的共有的属性
type Exclude<T,U> = T extends U ? T : never;
type E2 = Exclude<keyof any, number | symbol>;
NonNullable : 排除类型 T 的 null | undefined 属性
type NonNullable <T> = T extends null | undefined ? never : T
type N = NoNullable<string|number|null|undefined>
ReturnType : 获取函数的返回类型
type ReturnType<T extends (...args: any[]) => any> = T extends (...args: any[]) => infer R ? R : any
function A (){
return 123
}
type N = ReturnType<A>;
Parameters :从函数类型的参数中使用的类型构造元组类型Type
type Parameters<T extends (...args: any) => any> = T extends (...args: infer A) => any ? [A] : never
String的一些常用操作
- 全部转为大写
UpperCase<T>
- 全部转为小写
LowerCase<T>
- 首字母大写
Capitalize<T>
- 首字母小写
Uncapitalize<T>