@pkt/utils
Version:
81 lines (80 loc) • 1.93 kB
TypeScript
import type { SafeAny } from '@pkt/utils/types';
/**
*
* 复制/拷贝
*
* @returns
*/
export declare function copy(source: SafeAny): SafeAny;
/**
* 根据 object对象的path路径获取值
*
* const obj = {a: {aa: {aaa: 2}}, b: 4};
*
* get(obj, 'a.aa.aaa'); // 2
* get(obj, ['a', 'aa', 'aaa']); // 2
*
* get(obj, 'b.bb.bbb'); // undefined
* get(obj, ['b', 'bb', 'bbb']); // undefined
*
* get(obj.a, 'aa.aaa'); // 2
* get(obj.a, ['aa', 'aaa']); // 2
*
* get(obj.b, 'bb.bbb'); // undefined
* get(obj.b, ['bb', 'bbb']); // undefined
*
* get(obj.b, 'bb.bbb', 42); // 42
* get(obj.b, ['bb', 'bbb'], 42); // 42
*
* get(null, 'a'); // undefined
* get(undefined, ['a']); // undefined
*
* get(null, 'a', 42); // 42
* get(undefined, ['a'], 42); // 42
*
* const obj = {a: {}};
* const sym = Symbol();
* obj.a[sym] = 4;
* get(obj.a, sym); // 4
* @param obj 对象
* @param path 路径
* @param defaultValue 默认值
* @returns SafeAny
*/
export declare function deepGet(obj: SafeAny, path: string | string[], defaultValue?: unknown): SafeAny;
/**
* 根据 object对象的path路径设置值
*
* const obj1 = {};
* set(obj1, 'a.aa.aaa', 4); // true
* set(obj1, 'a.aa.aaa', 4); // true
*
* const obj2 = {};
* set(obj2, ['a', 'aa', 'aaa'], 4); // true
* obj2; // {a: {aa: {aaa: 4}}}
*
* const obj3 = {a: {aa: {aaa: 2}}};
* set(obj3, 'a.aa.aaa', 3); // true
* obj3; // {a: {aa: {aaa: 3}}}
*
* const obj4 = {a: {aa: {aaa: 2}}};
* set(obj4, 'a.aa', {bbb: 7}); // false
*
* const obj5 = {a: {}};
* const sym = Symbol();
* set(obj5.a, sym, 7); // true
* obj5; // {a: {Symbol(): 7}}
*
* @param obj 对象
* @param path 路径
* @param value 值
* @returns boolean
*/
export declare function deepSet(obj: SafeAny, path: string | string[], value: unknown): boolean;
/**
*
* 深度合并
*
* @returns
*/
export declare function deepMerge(target: SafeAny, source: SafeAny): SafeAny;