如何在prisma上实现动态类型

问题描述 投票:0回答:1

显示

this expression is not callable
错误。 如何在动态模型时解决 findUnique 方法上的此类型错误。

export const isFound = async (
  model: Prisma.ModelName,
  id: string | number,
  idName: string
): Promise<boolean> => {
  id = parseInt(id as string)
  const result = await prisma[model].findUnique({
    where: { [idName]: id },
  })
  return !!result
}

我尝试过任何类型。它工作正常。但我想要更多的类型安全。 如何实现不出错

 await (prisma[model] as any).findUnique({
    where: { [idName]: id },
  })

我想要类似的东西

 await (prisma[model] as GoodType).findUnique({
    where: { [idName]: id },
  })
javascript node.js typescript dynamic prisma
1个回答
0
投票

你不能。不支持。

稍微长一点的版本:

如果你愿意,你可以继续使用类型转换

as any
,但没有办法实现类型。您可能想要查看的一个选项是原始查询,特别是
queryRawUnsafe()
和参数化查询(文档)。

我建议考虑为什么您需要动态表名称,如果需要,则重新评估 Prisma 是否适合您的场景。

© www.soinside.com 2019 - 2024. All rights reserved.