• 通过object路径设置值 如果路径中不存在则会自动创建对应的对象

    支持类型推导检测

    类型参数

    • T extends object
    • P extends string
    • S extends string = ""
    • NO_START extends string = DotTrim<RemoveStrStart<P, S>>
    • Path extends string = TransferPath<NO_START>

    参数

    • obj: T

      对象

    • path: TransferPathOf<T, P, S>

      路径

    • value: TypeOfPath<T, Path>

      设置值

    • onExist: SetObjValueByPathOnExist = ...

      当要改动位置已经有值时的回调

    • 可选objName: S = ...

      对象名

    返回 T

    setObjValueByPath({ a: { b: { c: 123 } } }, 'obj[a][b][c]', 333, undefined, 'obj'); // {a: { b: { c: 333 } }}
    setObjValueByPath({ a: { b: { c: 123 } } }, 'obj[a][b][c]', true as any, undefined, 'obj'); // {a: { b: { c: true } }}