import { AnyObject, ObjectIterator, PropertyName } from "../types/global.js"; //#region src/modules/object.d.ts /** * 从obj中选取属性,返回一个新的对象 * @param obj - 源对象 * @param keys - 要选取的属性键数组 * @returns - 包含选取属性的新对象 * @public */ declare function pick(obj: T | undefined | null, keys: K[]): Pick; /** * 类似于数组的filter方法,但是作用于对象。 * 默认情况下predicate,是判断value值是否为真值进行筛选 * @param obj - 源对象 * @param predicate - 筛选函数 * @returns - 筛选后的新对象 * @public */ declare function pickBy(obj: T | undefined | null, predicate?: (value: T[K], key?: K) => boolean): Partial>; /** * 从obj中剔除属性,返回一个新的对象 * @param obj - 源对象 * @param keys - 要剔除的属性键数组 * @returns - 剔除指定属性后的新对象 * @public */ declare function omit(obj: T | null | undefined, keys?: K[]): Omit; /** * pickBy的反向,判断剔除的属性 * @param obj - 源对象 * @param predicate - 筛选函数 * @returns - 剔除匹配属性后的新对象 * @public */ declare function omitBy(obj: T | undefined | null, predicate?: (value: T[K], key?: K) => boolean): Partial>; /** * 转换对象的键名 * @param obj - 源对象 * @param iteratee - 键名转换函数 * @returns 转换键名后的新对象 * @public */ declare function mapKeys(obj: T, iteratee: ObjectIterator): Record; /** * 转换对象的值 * @param obj - 源对象 * @param iteratee - 值转换函数 * @returns 转换值后的新对象 * @public */ declare function mapValues(obj: T, iteratee: ObjectIterator): Record; /** * 对两个对象,进行递归合并 * @param target - 目标对象 * @param sources - 源对象数组 * @returns - 合并后的对象 * @public */ declare function merge(target: AnyObject, ...sources: AnyObject[]): AnyObject; /** * 移除对象中不能被json序列化的属性 * @param obj - 要处理的对象 * @returns - 移除不可序列化属性后的对象 * @public */ declare function removeNonSerializableProps(obj: Record | null | undefined): Record | null | undefined; /** * 移除对象中不能序列化的属性后,再执行JSON.stringify * @param obj - 要序列化的对象 * @returns - JSON字符串 * @public */ declare function safeJsonStringify(obj: AnyObject | null | undefined): string; /** * 反转对象的键值对 * @param obj - 源对象 * @returns 键值对反转后的新对象 * @public */ declare const invert: (obj: Record) => Record; //#endregion export { invert, mapKeys, mapValues, merge, omit, omitBy, pick, pickBy, removeNonSerializableProps, safeJsonStringify };