大佬们,请教个 prisma 的 ts 类型问题?

请问下面的 model 参数的类型该如何定义呢?
我试了半天,好像没有办法

import { PrismaClient, User, Post } from '@prisma/client'

const fn = (model: any) => { // 这里的 model 类型该如何写呢
  return model.findMany({})
}

const prisma = new PrismaClient()

fn(prisma.user)
fn(prisma.post)
fn(prisma.xxxxx) // 要能支持传递任意模型
阅读 2.6k
2 个回答
interface ModelType<T> {

  findMany(): Promise<T[]>;

}

const fn = <T extends ModelType<any>>(model: T) => {

  return model.findMany({});

};
import { PrismaClient, Prisma } from "@prisma/client";

type ModelDelegate = {
  findMany: (params?: any) => any;
 
}

const fn = (model: ModelDelegate) => { // 使用 ModelDelegate 类型代替 any
  return model.findMany({})
}

const prisma = new PrismaClient()

fn(prisma.user)
fn(prisma.post)
// fn(prisma.xxxxx) 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏