typescript Prisma/React查询依赖未定义类型挑战

a64a0gku  于 2023-02-10  发布在  TypeScript
关注(0)|答案(1)|浏览(107)

我想获取一个查询(Prisma上的TRPC查询)的输出,并将其用作将来查询的依赖输入。
我遵循了React Query的相关文档,但遇到了类型错误,第一个的返回可能未定义(例如product is possibly 'undefined'):

const { data: product } = api.product.getUnique.useQuery({ id: pid });

  const options = api.option.getAll.useQuery(
    {
      product: product.productSize,
      region: product.productRegion,
    },
    { enabled: !!product }
  );

enabled的包含是否还没有处理这个问题?如果没有,适应Typescript的正确方法是什么?

rqqzpn5f

rqqzpn5f1#

只要将product值转换为布尔值,返回任意 truthy 值(例如,如果product将等于{},仍然会导致true,这意味着product不一定具有productSizeproductRegion属性,我将首先将其更改为:
{ enabled: !!product && product.productSize && product.productRegion }
如果这不能修复typescript错误,作为开发人员,您可以确定值确实存在,因此您可以在typescript中使用as关键字,告诉它您确定类型是您想要的类型:(在本例中,我假设值是字符串,但您可以将其更改为数字或任何它们的真实值)

const options = api.option.getAll.useQuery(
    {
      product: product.productSize as string,
      region: product.productRegion as string,
    },
    { enabled: !!product && product.productSize && product.productRegion }
  );

相关问题