t-comm
Version:
专业、稳定、纯粹的工具库
27 lines (26 loc) • 787 B
TypeScript
/**
* 设置对象深层属性的值(类似 Lodash 的 _.set)
* @param obj 目标对象
* @param path 属性路径(字符串或数组,如 'a.b.c' 或 ['a', 'b', 'c'])
* @param value 要设置的值
* @returns 修改后的对象
* @example
* ```ts
* // 字符串路径
* setWithString({}, 'a.b.c', 1);
* // { a: { b: { c: 1 } } }
*
* // 数组路径
* setWithString({}, ['a', 'b', 'c'], 'x');
* // { a: { b: { c: 'x' } } }
*
* // 数组下标语法 'a[0].b'
* setWithString({}, 'a[0].b', 'y');
* // { a: [{ b: 'y' }] }
*
* // 已有对象上覆盖/扩展
* setWithString({ a: { b: 1 } }, 'a.c', 2);
* // { a: { b: 1, c: 2 } }
* ```
*/
export declare function setWithString<T extends object>(obj: T, path: string | Array<string | number>, value: any): T;