export function hasKey(o: unknown, key: K): o is { [_ in K]: unknown } { if (typeof o !== 'object' || o === null) return false; return key in o; } export const BetterObject: { keys>(object: T): (keyof T)[]; values>(Object: T): T[keyof T][]; } = { keys: (o) => Object.keys(o) as any, values: (o) => Object.values(o) as any, }; export function isRecord(a: unknown): a is Record { return typeof a === 'object' && a != null; }