/** 获取 T 的 value 值类型 */ export type ValueOf = T[keyof T]; /** 获取 Record 类型的 value 值类型。对于 Record 效果等同 ValueOf */ export type RecordValueType = T extends Record ? U : T; export type ThenArgs = T extends PromiseLike ? U : T; export type ArrayLikeArgs = T extends ArrayLike ? U : T; export type GeneralFn = (...p: unknown[]) => T; /** * @deprecated This type should be avoided as far as possible */ export type AnyObject = Record; export type ComputeRange = []> = Result['length'] extends N ? Result : ComputeRange; type Octal256 = ComputeRange<256>[number]; type AlphaChanel = `0.${ComputeRange<999>[number]}` | '1.0'; type AssertAlpha = `${Alpha}` extends AlphaChanel ? Alpha : never; export type RGBA = [Octal256, Octal256, Octal256, AssertAlpha?]; export {};