// Deep partial type DeepPartial = T extends object ? { [K in keyof T]?: DeepPartial } : T; // Non-nullable keys only type RequiredKeys = { [K in keyof T]-?: undefined extends T[K] ? never : K; }[keyof T]; // Flatten union to intersection type UnionToIntersection = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never; // Pick by value type type PickByValue = { [K in keyof T as T[K] extends V ? K : never]: T[K]; }; // Readonly deep type DeepReadonly = { readonly [K in keyof T]: T[K] extends object ? DeepReadonly : T[K]; };