UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

27 lines (26 loc) 787 B
/** * 设置对象深层属性的值(类似 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;