在反应查询中输入缩小

Type narrowing in react-query

类型缩小是否像以前一样工作?

为什么 coffeesQuery.data 在所有检查后具有类型 string[] | undefined 而不是 string[]

为了清楚起见,第一张图片包含没有错误弹出窗口的代码。

ps:即使我使用 coffeesQuery.isSuccesscoffeesQuery.status === 'success'

,我也会收到相同的打字稿错误

更新:

{
  "dependencies": {
    "react-query": "^2.26.4",
  },
  "devDependencies": {
    "typescript": "4.6.3"
  }
}

错误存在是因为我使用的是react-query v2。已更新至 v3,一切正常。

我在codesandbox中转载了你的截图

https://codesandbox.io/s/type-narrowing-4dv3ci

状态机有四种状态:idle、loading、error、success。如果您检查前三个,剩下的就是成功,因此 data 应该正确地缩小到您的类型,并且在我的示例中也确实表明了这一点。

如果这不起作用,请展示您自己的 codesandbox 或 TypeScript 游乐场复制品。

旁注:空闲状态将在 v4 中移除。