[Typescript] 内置工具类型
// 内置工具类型
// 1. Partial<T>:将类型 T 的所有属性变为可选属性。
// 2. Required<T>:将类型 T 的所有可选属性变为必需属性。
// 3. Readonly<T>:将类型 T 的所有属性变为只读属性。
// 4. Record<K, T>:将类型 K 的所有属性映射到类型 T。
// 5. Pick<T, K>:从类型 T 中选择属性 K,返回一个新类型。
// 6. Omit<T, K>:从类型 T 中排除属性 K,返回一个新类型。
// 7. Exclude<T, U>:从类型 T 中排除类型 U,返回一个新类型。
// 8. Extract<T, U>:从类型 T 中提取类型 U,返回一个新类型。
// 9. NonNullable<T>:从类型 T 中排除 null 和 undefined,返回一个新类型。
// 10. ReturnType<T>:获取函数类型 T 的返回值类型。
// 11. InstanceType<T>:获取构造函数类型 T 的实例类型。
// 12. ThisType<T>:用于定义 this 的类型,通常用于函数类型的定义。
// 13. Parameters<T>:获取函数类型 T 的参数类型,返回一个元组类型。
// 14. ConstructorParameters<T>:获取构造函数类型 T 的参数类型,返回一个元组类型。
// 15. Unpack<T>:获取 Promise<T> 的类型,返回 T。
// 16. Awaited<T>:获取 Promise<T> 的类型,返回 T。
// 17. ThisParameterType<T>:获取函数类型 T 的 this 参数类型。
// 18. OmitThisParameter<T>:从函数类型 T 中排除 this 参数,返回一个新类型。
// 19. Uppercase<T>:将字符串字面量类型 T 转换为大写字母。
// 20. Lowercase<T>:将字符串字面量类型 T 转换为小写字母。
// 21. Capitalize<T>:将字符串字面量类型 T 的首字母转换为大写字母。
// 22. Uncapitalize<T>:将字符串字面量类型 T 的首字母转换为小写字母。
// 23. Awaited<T>:获取 Promise<T> 的类型,返回 T。
// 24. ThisParameterType<T>:获取函数类型 T 的 this 参数类型。
// 25. OmitThisParameter<T>:从函数类型 T 中排除 this 参数,返回一个新类型。