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]; }>;