/** * Returns `true` when `value` contains every key in `keys`. * * @example * hasKeys(user, ['id', 'name']); */ export default function hasKeys< K extends number | string | symbol, V, N extends number | string | symbol, >( value: Record, keys: readonly N[], ): value is Record & Record { for (const key of keys) { if (!(key in value)) { return false; } } return true; }