UNPKG

@pkt/utils

Version:

81 lines (80 loc) 1.93 kB
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;