跳到主要内容

get()

function get<T>(
obj,
path,
defaultValue?
): T;

Defined in: packages/utils/src/object/get.ts:35

安全读取点号、方括号或逗号分隔的嵌套路径

解析顺序:先把整个 path 当作字面量键(只按 ,[] 切分,点号保留在键名里), 命中则直接返回;未命中才回退到嵌套路径(按 ,[]. 切分)。 因此 get({ 'a.b': 1, a: { b: 2 } }, 'a.b') 得到 1。

命中判定逐段用 in,与值本身无关:0、false、''、NaN 以及等于根对象的自引用都算命中,只有读到的值是 undefined 或路径中断(段不存在 / 中途为 null)才返回 defaultValue。

Type Parameters​

Type ParameterDefault typeDescription
Tunknown调用方期望的返回类型

Parameters​

ParameterTypeDescription
objunknown要查询的值
pathstring属性路径
defaultValue?T路径不存在时的默认值

Returns​

T

路径值或默认值

Example​

get({ a: [{ b: { c: 1 } }] }, 'a[0].b.c'); // 1
get({ 'a.b': 0 }, 'a.b', 'D'); // 0
get({ a: null }, 'a.b', 'D'); // 'D'