都是利用了泛型,概念上类似于返回类型的一个工具函数那样。所以也称为工具类型。
Partial<Type>
返回可选参数,在声明class的构建函数入参挺有用的
Required<Type>
所有可选参数转为必填参数
Readonly<Type>
所有参数转为只读
(下面的用的的keys类似这样 'a' | 'b' | 'c')
Record<Keys,Type>
类似字典,keys代表参数范围,type是每一个key索引后的返回类型,这玩意和之前自己写的一个泛型工具效果好像是一回事:
type __dynamic<K,V> = {
[Property in K]:V
}
Pick<Type, Keys>从type中提取指定键值返回新的类型
Omit<Type, Keys>
和Pick差不多,但是keys中是排除的键值
下面是针对联合类型的一些工具类型
Exclude<UnionType, ExcludedMembers> 从uniType中排除掉ExcludedMembers中的键值
Extract<Type, Union> 从Type中筛选出和Union重叠键值的属性
NonNullable<Type> 如果Typ有可能为null或者undefined,用这个可以排除
下面的输入类型为函数类型噢
Parameters<Type> 提取输入的函数的输入参数形成一个数组,这个数组索引n对应类型为函数第n个入参的类型。
ReturnType<Type> 提取输入函数的返回值类型
输入类型为一个类
ConstructorParameters<Type> 将Type视为构造函数,可以获取其new时的各参数类型作为类型。
InstanceType<Type>当入参为一个ClassX 类 时,T代表typeof ClassX,此时可用 InstanceType 得到其实例的类型。工厂函数中挺好用的。