• 通过object路径获取值

    支持类型字面量推导,const v:number = getObjValueByPath({ a: { b: { c: 123 } } }, 'a.b.c'); v的类型是number

    类型参数

    • T extends Record<string, any>
    • P extends string
    • S extends string = ""

    参数

    • obj: T
    • path: TransferPathOf<T, P, S>
    • objName: S = ...

    返回 TypeOfPath<T, TransferPath<DotTrim<RemoveStrStart<P, S>>>>

    // object
    getObjValueByPath({ a: { b: { c: 123 } } }, 'a.b.c'); // 123
    getObjValueByPath({ a: { b: { c: 123 } } }, 'a[b][c]'); // 123
    getObjValueByPath({ a: { b: { c: '123' } } }, 'a[b].c'); // '123'

    // array
    getObjValueByPath([[[1]]], '0.0.0'); // 1
    getObjValueByPath([[[1]]], '[0][0][0]'); // 1
    getObjValueByPath([[[1]]], '[0][0].0'); // 1