/** * Takes Original, but for all keys that are also in Override, * the types are changed to those from Override. * * @example * type Original = { foo: string, bar: number } * type Override = { bar: boolean } * type Overridden = OverrideProperties * // = { foo: string, bar: boolean } */ export type OverrideProperties< Base extends Record, Override extends Partial>, > = Omit & Override