我正在尝试通过 API 调用访问以下 json 响应中的元素
foilResponse.data.products.edges[0].totalInventory
但是,无论上面的内容有什么变化,我使用的所有内容都显示为未定义。当我使用邮递员查询端点时,我得到了返回的完整数组,我需要在 Node 中配置什么吗?
{
data: { products: { edges: [Array] } },
extensions: {
cost: {
requestedQueryCost: 3,
actualQueryCost: 3,
throttleStatus: [Object]
}
}
嗯,这可能是它无法推断类型定义的原因。尝试:
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;
抱歉,对于快速射击方法,但我认为有一些选择会更好。