如何处理来自 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)))
  ))