Typescript 类型声明工具函数一览
原文地址:Typescript 类型声明工具函数一览
类型声明是 Typescript 中用到最多得东西,他提供了一系列类型声明函数辅助开发,提升效率。
下面简述每个方法的主要作用,个人认为不容易理解的会带示例,仅供参考。
Partial
Partial 的作用就是将 T 类型里的属性全部变为可选项 ? 。
Required
Partial 的作用就是将 T 类型里的属性全部变为必选项 ? 。
Readonly
Readonly 的作用是将 T 类型所有属性变为只读属性,也就意味着这些属性不能被重新赋值。
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 的作用是用来过滤类型中的 null 及 undefined 类型。
ReturnType
ReturnType 的作用是用于获取函数 T 的返回类型。
InstanceType
InstanceType 的作用是获取构造函数类型的实例类型。
ThisType
ThisType 的作用是用于指定上下文对象的类型。
Parameters
Parameters 的作用是用于获得函数的参数类型组成的元组类型。
ConstructorParameters
ConstructorParameters 的作用是提取构造函数类型的所有参数类型。它会生成具有所有参数类型的元组类型(如果 T 不是函数,则返回的是 never 类型)。
|