@cloudcome/utils-core
Version:
cloudcome core utils
62 lines (61 loc) • 2.35 kB
TypeScript
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>;