工具类型用于处理和转换类型,提供了许多便捷的类型操作功能,以简化代码和增强类型系统的灵活性。

Awaited<Type>

解包Promise的类型

type A = Awaited<Promise<string>>;

type A = string

type B = Awaited<Promise<Promise<number>>>;

type B = number

type C = Awaited<boolean | Promise<number>>;

type C = number | boolean

Partial<Type>

Partial<Type> 构造一个类型,其中 Type 中的所有属性都变为可选。这意味着原本必需的属性在新类型中不再是必需的,允许你只提供部分属性。

类似的还有:Required , ReadOnly


Record<Keys, Type>

构造一个key为Keys值为Type的对象类型


Pick<Type, Keys>

构造一个从Type中选出Keys的对象类型,其中Keys 是一个字符串字面量或字符串字面量的联合类型,表示从原始类型中需要提取的属性集合。

Omit<Type, Keys>

与Pick相反,抽离出Keys,保留剩余部分