type RemoveUndefined = { [K in keyof T]: T[K] extends undefined ? never : T[K] } export function removeUndefined(obj: T): RemoveUndefined { const result = {} as RemoveUndefined for (const key in obj) { if (obj[key] !== undefined) { // @ts-expect-error result[key] = obj[key] as RemoveUndefined[keyof T] } } return result }