跳至主要内容

访问

访问来自源步骤结果的(可能嵌套的)属性。

危险

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>;