TypeScript工具类型
TypeScript实用工具
全局工具
TypeScript提供了一些实用工具类型,这些工具类型全局可用。
异步
Awaited
Awaited用于获取Promise<Type>中的Type类型,这和async函数中的await很相似,只不过async函数中的await是取得Promise的值,而Awaited则是取得值的类型。
Type不仅可以是一个Promise类型,也可以是一个嵌套的Promise类型、字符串等基本类型,甚至还可以是一个联合类型。
type A = Awaited<Promise<string>>;
// A = string;
type A = Awaited<Promise<Promise<number>>>;
// A = string;
type A = Awaited<string>
// A = string;
type A = Awaited<boolean | Promise<number>>;
// A = boolean | number示例
对象属性转换
Partial
Partial的作用是将Type中所有的属性都转换成可选的。
例如有些时候我们需要将接口中的所有属性都转换成可选的,这个时候没必要再重新写一遍,只需要用Partial类型转换一下即可。
Required
Required类型的作用刚好与Partial相反,它会将Type内的所有属性都转换成必填的。
Readonly
顾名思义Readonly的作用是将Type中的所有属性都转换成只读的。
根据条件构造对象类型
Record<Keys,Type>
Record会构建一个包含所有键为Key,类型为Type的属性的对象类型,例如:
Type也可以是对象类型:
Pick<Type, Keys>
Pick的作用是从Type中取得所有Keys属性来构建一个新的对象类型。
Omit<Type, Keys>
Omit和Pick类似,不过Omit是所有移除Key属性,并用剩余的属性来构建一个新的对象类型。
Pick的那个例子可以用Omit重写,效果相同。
联合类型
Exclude<UnionType, ExcludedMenbers>
Exclude会返回一个将UnionType联合类型中所有的ExcludedMenbers成员都移除的联合类型,例如:
Extract<Type, Union>
Extract会返回Type和Union的交集。
NonNullable
NonNullabe会将Type中的null和undefined类型移除,并返回一个新的类型。
函数
Parameters
返回包含函数所有参数的元组或者数组。
ReturnType
返回函数返回值的类型。
ConstructorParameters
从构造函数类型的参数类型构造元组或数组类型。它产生一个包含所有参数类型的元组类型(如果 Type 不是函数,则类型 never )。
InstanceType
构造一个由 Type 中构造函数的实例类型组成的类型。
ThisParameterType
提取函数类型的 this参数的类型,如果函数类型没有 this参数,则为unknown
OmitThisParameter
从 Type中移除 this参数。
如果 Type没有显式声明this,则直接返回 Type。否则,将从Type中创建一个不包含this的新函数类型。
如果函数没有显示声明this类型:
字符串
Uppercase<StringType> : 将字符串中的每个字符转换为大写。
Lowercase<StringType> : 将字符串中的每个字符转换为小写。
Capitalize<StringType> : 将字符串中的第一个字符转换为等效的大写字母。
Uncapitalize<StringType> : 将字符串中的第一个字符转换为等效的小写字母。
最后更新于