UNPKG

@cloudcome/utils-core

Version:
62 lines (61 loc) 2.35 kB
import { AnyObject } from '../types'; /** * 从对象中选择指定键的属性,返回一个新的对象。 * * @param object - 要从中选择属性的对象。 * @param keys - 要选择的键数组。 * @returns 包含指定键属性的新对象。 * * @example * ```typescript * const obj = { a: 1, b: 2, c: 3 }; * const result = objectPick(obj, ['a', 'c']); * console.log(result); // { a: 1, c: 3 } * ``` */ export declare function objectPick<T extends AnyObject, K extends keyof T>(object: T, keys: K[]): Pick<T, K>; /** * 从对象中排除指定键的属性,返回一个新的对象。 * * @param object - 要从中排除属性的对象。 * @param keys - 要排除的键数组。 * @returns 排除指定键属性后的新对象。 * * @example * ```typescript * const obj = { a: 1, b: 2, c: 3, d: 4 }; * const result = objectOmit(obj, ['a', 'd']); * console.log(result); // { b: 2, c: 3 } * ``` */ export declare function objectOmit<T extends AnyObject, K extends keyof T>(object: T, keys: K[]): Omit<T, K>; /** * 遍历对象的每个键值对,并对每个键值对执行提供的映射函数,返回一个新的对象。 * * @param object - 要遍历的对象。 * @param mapper - 对每个键值对执行的映射函数。 * @returns 返回一个新的对象,其中每个值都是通过映射函数处理后的结果。 * * @example * ```typescript * const obj = { a: 1, b: 2, c: 3 }; * const result = objectMap(obj, (val, key) => String(val * 2)); * console.log(result); // { a: '2', b: '4', c: '6' } * ``` */ export declare function objectMap<T extends AnyObject, V>(object: T, mapper: (value: T[keyof T], key: keyof T) => V): Record<keyof T, V>; /** * 根据提供的过滤函数过滤对象的属性,返回一个新对象,只包含满足条件的属性。 * * @param object - 要过滤的对象。 * @param predicate - 过滤函数,接收值和键作为参数,返回布尔值。 * @returns 包含满足过滤条件的属性的新对象。 * * @example * ```typescript * const obj = { a: 1, b: 2, c: 3, d: 4 }; * const result = objectFilter(obj, (value, key) => value > 2); * console.log(result); // { c: 3, d: 4 } * ``` */ export declare function objectFilter<T extends AnyObject>(object: T, predicate: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;