工具类型用于处理和转换类型,提供了许多便捷的类型操作功能,以简化代码和增强类型系统的灵活性。
解包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> 构造一个类型,其中 Type 中的所有属性都变为可选。这意味着原本必需的属性在新类型中不再是必需的,允许你只提供部分属性。
类似的还有:Required , ReadOnly
构造一个key为Keys值为Type的对象类型
构造一个从Type中选出Keys的对象类型,其中Keys 是一个字符串字面量或字符串字面量的联合类型,表示从原始类型中需要提取的属性集合。
与Pick相反,抽离出Keys,保留剩余部分