# 工具类型
# 内建的公用类型
TypeScript 提供了一系列全局类型,用于方便使用。
- 多类型处理
Record<K,T>创建键名属于类型 K ,键值属于 T 的类型,范例 RecordPick<T,K>创建类型 T 中键名符合类型 K 的子类型,范例 RecordOmit<T,K>创建类型 T 中键名不符合类型 K 的子类型,效果是Pick相对 范例 RecordExclude<T,K>创建 T 类型中除去 K 类型后的子类型,类似集合的补集,范例 ExcludeExtract<T,K>创建同时属于 T,K 类型的子类型,类似集合的交集,范例 ExtractNonNullable<T>创建 T 中非 null 和 undefined 的子类型,效果同Exclude<T,null|undefined>,范例 NonNullable
- 函数类子类型
Parameters<T>创建函数类型 T 的参数类型组成的元祖,范例 ParametersConstructorParameters<T>创建构造器类型 T 的参数组成的元祖, [范例 ConstructorParameters]ReturnType<T>创建函数类型 T 的返回值类型组成的元祖, 范例 ReturnTypeInstanceType<T>创建类类型 T 对应的实例类型 范例 InstanceTypeThisParameterType<T>提取函数类型 T,this 参数对应的类型,范例 ThisParameterType--strictFunctionTypes配置使能后生效OmitThisParameters<T>创建函数类型 T除去 this 参数后的函数,范例 OmitThisParameters--strictFunctionTypes配置使能后生效ThisType<T>创建函数类型 T除去 this 参数后的函数,范例 ThisType--noImplicitThis配置使能后生效
- 类型修改
Readonly<T>创建类型 T 的所有属性为只读的类型,范例 ReadonlyRequired<T>创建类型 T 的所有属性为必选的类型 范例 RequiredPartial<T>创建属于类型 T 的子类型,范例 Partial