如何访问数组的元素

问题描述 投票:0回答:1

我正在尝试通过 API 调用访问以下 json 响应中的元素

foilResponse.data.products.edges[0].totalInventory

但是,无论上面的内容有什么变化,我使用的所有内容都显示为未定义。当我使用邮递员查询端点时,我得到了返回的完整数组,我需要在 Node 中配置什么吗?

{
  data: { products: { edges: [Array] } },
  extensions: {
    cost: {
      requestedQueryCost: 3,
      actualQueryCost: 3,
      throttleStatus: [Object]
  }
}
node.js arrays express graphql
1个回答
0
投票

嗯,这可能是它无法推断类型定义的原因。尝试:

interface IFoilResponse {
  data: { products: { edges: Record<string, any>[] };
  extensions: { 
    cost: {
      requestedQueryCost: number;
      actualQueryCost: number;
      throttelStatus: Record<string, any>;  
   }
}

const foilResponse: IFoilResponse = data;
console.log(foilResponse.data.products.edges[0].totalInventory);

不过,假设您没有使用 typescript 而是使用 javascript,您可以尝试编写代码:

(foilResponse.data.products.edges[0] as Record<string, any>)?.totalInventory;

虽然更干净的方法是:

Object(foilResponse.data.products.edges[0])?.totalInventory;

抱歉,对于快速射击方法,但我认为有一些选择会更好。

© www.soinside.com 2019 - 2024. All rights reserved.