Typescript 类型声明工具函数一览
类型声明是 Typescript 中用到最多得东西,他提供了一系列类型声明函数辅助开发,提升效率。
下面简述每个方法的主要作用,个人认为不容易理解的会带示例,仅供参考。
Partial
Partial
Required
Partial
Readonly
Readonly
Record
Record<K, T> 的作用是将 K 中所有的属性的值转化为 T 类型。
示例
type petsGroup = 'dog' | 'cat' | 'fish';
interface IPetInfo {
name:string,
age:number,
}
type IPets = Record<petsGroup, IPetInfo>;
const animalsInfo:IPets = {
dog:{
name:'dogName',
age:2
},
cat:{
name:'catName',
age:3
},
fish:{
name:'fishName',
age:5
}
}
Pick
Pick<T, K extends keyof T> 的作用是将 T 类型中的子属性挑出来,变成包含 T 类型部分属性的子类型。
示例
type T = {
name:string;
age:number;
}
type K = Pick<T,"name">;
// 等同于
type K = {
name: string;
}
Exclude
Exclude<T, U> 的作用是将 T 类型和 U 类型属性交集的补集。
示例
type T0 = Exclude<"a" | "b" | "c", "a">;
// "b" | "c"
type T1 = Exclude<"a" | "b" | "c", "a" | "b">;
// "c"
type T2 = Exclude<string | number | (() => void), Function>;
// string | number
Extract
Extract<T, U> 的作用是从 T 类型中提取出 U 类型属性,也就是取两个类型的交集属性。
Omit
Omit<T, K extends keyof any> 的作用是使用 T 类型中除了 K 类型的所有属性,来构造一个新的类型,也就是从 T 类型中去掉 T 类型和 K 类型的交集属性。
NonNullable
NonNullable
ReturnType
ReturnType
InstanceType
InstanceType 的作用是获取构造函数类型的实例类型。
ThisType
ThisType
Parameters
Parameters
ConstructorParameters
ConstructorParameters