如何处理来自 DataLoader 的只读参数 -(NextJS 中的 GraphQL + Apollo)
How to deal with readonly arguments from DataLoader - (GraphQL + Apollo in NextJS)
我有一个加载程序函数可以从数据库中获取厨师。所以加载器接收到一个 ids
的数组,奇怪的是 ids
有一个 readonly
类型。
当我尝试将该只读类型传递给数据库查询时,出现错误。
如何修复类型定义?
源代码:https://github.com/LauraBeatris/graphql-with-nextjs/blob/master/pages/api/loader.ts
我根据@DanielRearden 的评论修复了这个问题。
DataLoader 实例接收的函数使用泛型类型,因此我们可以将类型传递给 ids
参数,然后在 whereIn
knex 方法中使用它。
new DataLoader((ids: string[]) => (
databaseClient
.table("chefs")
.whereIn("id", ids)
.select("*")
.then(rows => ids.map(id => rows.find(row => row.id === id)))
))
我有一个加载程序函数可以从数据库中获取厨师。所以加载器接收到一个 ids
的数组,奇怪的是 ids
有一个 readonly
类型。
当我尝试将该只读类型传递给数据库查询时,出现错误。
如何修复类型定义?
源代码:https://github.com/LauraBeatris/graphql-with-nextjs/blob/master/pages/api/loader.ts
我根据@DanielRearden 的评论修复了这个问题。
DataLoader 实例接收的函数使用泛型类型,因此我们可以将类型传递给 ids
参数,然后在 whereIn
knex 方法中使用它。
new DataLoader((ids: string[]) => (
databaseClient
.table("chefs")
.whereIn("id", ids)
.select("*")
.then(rows => ids.map(id => rows.find(row => row.id === id)))
))