克服 useQuery 中的这些 TS 错误?

overcoming these TS errors in useQuery?

所以,这对我来说并不明显。我期待 return 这个:

数据:{ 总价:字符串; }

然而,我发现 Promise 和 QueryFunction 之间不匹配....

我正在创建自定义查询挂钩...

  return useQuery<AddSkuSelectedSku['totalPrice'], Error>(
    [queryKey, item],
    async () => {
      const { data } = await product.price({ item })

      return {
        totalPrice: data?.price || ''
      }
    }, mergedOptions
  );

我发现我的 QueryFunction 出现了同样类型的错误。

是否因为我使用了 'async function' 作为第二个参数?

因此,我正在使用的文件出现 TS 错误,因为 returned 类型已关闭。

queryFn 参数需要 return 类型的 stringPromise<string>。一个 async 方法 return 一个 Promise<T>,所以你就快到了。

而不是 returning { totalPrice: data?.price || '' },你应该 return data?.price || '',假设 data?.price 是一个字符串。