访问
访问来自源步骤结果的(可能嵌套的)属性。
危险
access()
会绕过 .get()
/ .at()
,因此您应该只在真正需要时使用它。始终使用步骤的 .get()
或 .at()
(如果存在),除非您有更好的方法。
许多步骤要求您使用 .get()
或 .at()
才能正常运行,例如,如果您没有在 loadOne()
步骤 上调用 .get('attribute_name')
,那么它将不知道要请求 attribute_name
属性,您最终可能会得到意外的 null/undefined。
用法
const $userId = access($user, "id");
const $firstPatchUserId = access($args.get("input"), [
"patches",
0,
"user",
"id",
]);
危险
如果使用不当,这可能会导致意外结果(这可能会引入安全问题);仅在类似 JSON 的数据上使用它,最好是在对象具有空原型的情况下,并且只访问您信任的键(不要使用用户提供的数据作为路径!)。
一个 AccessStep
具有以下方法
.get(key)
- 获取键key
的值,假设解析后的 JSON 值是一个对象.at(index)
- 获取索引index
处的的值,假设解析后的 JSON 值是一个数组
function access<TData>(
$source: ExecutableStep<unknown>,
path: (string | number)[] | string | number,
fallback?: any,
): AccessStep<TData>;