import type { Combine } from './combine' /** * Returns a new type where some properties `K` of `T` are required. * The rest are left as-is. * * @example * ``` * type Data = { * a?: string; * b?: string; * }; * type Ex = RequireSome; * ``` */ export type RequireSome = Combine< { [P in keyof T as Extract]-?: T[P] } & { [P in keyof T as Exclude]: T[P] } >