Partial
创建一个新类型,将T中的所有属性变成可选的。
Required
创建一个新类型,将T中的属性都变成必选的。
ReadOnly
创建一个新类型,将T中的属性都变成只读的。
Record<K, T>
根据K和T产生一个新的类型。
注意的是K必须能赋值给 string|number|symbol.
type R = Record<'a'|'b',number>
// {a:number,b:number}
Pick<T,K>
从T中把K属性和它的值宅出来成为一个新的类型。注意K必须是T中的某个属性。
interface A {
x:number;
y:number;
}
type Ax = Pick<A,'x'> //{x:number}
Omit<T,K>
Omit 和 Pick 是互补的,意思是从T中把K属性剔除掉。
Exclude<T,U>
把T能赋值给U类型剔除掉。
type T0 = Exclude<'a'|'b'|'c','a'> // 'b'|'c'
Extract<T,U>
Extract和Exclude 互补的,意思是把T中可以赋值给U的类型提取出来。
NonNullable
从T类型中剔除null和undefined产生新类型
Parameters
获取函数类型T的参数类型构建成元组。
ConstructorParameters
获取构造函数类型T的参数类型构建成元组。
ReturnType
获取函数类型T的返回值类型。
InstanceType
该工具类型能够获取构造函数的返回值类型,即实例类型。
ThisParameterType
获取函数类型T中的this类型。
OmitThisParameter
从类型T中剔除this参数类型
ThisType
定义对象字面量的方法中this的类型。