import { isNullOrUndefined } from '@sindresorhus/is'; /** * Assigns non-nullish values from `right` to `left` for the given `keys`. */ export function assignKeys< Left extends Partial>, Right extends { [key in K]?: Left[key] }, K extends keyof Right, >(left: Left, right: Right, keys: K[]): Left { for (const key of keys) { const val = right[key]; if (!isNullOrUndefined(val)) { left[key] = val as unknown as Left[typeof key]; } } return left; }