【发布时间】:2020-06-20 21:20:03
【问题描述】:
我有一个加载器函数来从数据库中获取厨师。所以这个加载器会收到一个ids 的数组,奇怪的是ids 有一个readonly 类型。
当我尝试将该只读类型传递给数据库查询时,它会报错。
如何修复类型定义?
源码:https://github.com/LauraBeatris/graphql-with-nextjs/blob/master/pages/api/loader.ts
【问题讨论】:
-
根据错误,值
"id"不是您调用的whereIn方法的有效参数。此方法特定于您用于创建databaseClient的任何库(我猜是 Knex)——所以这个问题并不是 DataLoader 或 GraphQL 所特有的。 -
由于 DataLoader 的批量加载函数使用泛型类型,您可能需要为您的
ids参数显式提供类型(即ids: string[])。我猜没有这个,TypeScript 无法正确匹配whereIn的正确重载签名。
标签: graphql apollo apollo-client dataloader