export type ObjectWithOnlyOne = { [P in K]: Record & Partial, never>> extends infer O ? { [Q in keyof O]: O[Q] } : never; }[K]; export const isObjectWithOnlyOne = ( value: unknown, keys?: Record, ): value is ObjectWithOnlyOne => { return typeof value === 'object' && value !== null && !Array.isArray(value) && Object.keys(value).length === 1 && keys ? Object.keys(value).every((key) => key in keys) : true; };