当前位置: 首页 > 知识库问答 >
问题:

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

公德明
2023-06-26

请问下面的 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个答案

闻人嘉悦
2023-06-26
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) 
闻人嘉颖
2023-06-26
interface ModelType<T> {

  findMany(): Promise<T[]>;

}

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

  return model.findMany({});

};
 类似资料:
  • 本人想入坑golang来做web开发,向大佬们请教些问题(感谢指教),如下: 1.请推荐一下golang web框架(原因) 2.请推荐一些golang web框架写的应用的开源的代码,例如写的论坛呀,即时通信呀,流量统计呀等等(学习参考) 3.golang做web的优势说明 求指教!!!!!非常感谢!!!!!

  • 流程: 问题: 求教各位朋友,这个情况如何解决? 代码: 结果 数组置空, setSessionList([]) 这一步没有什么作用 补充 需求就是点击左边不同的用户,右边显示与当前用户的会话数据列表 现在的问题是,我点击多个用户后,显示的是这多个用户所有的会话数据列表,而我只需要显示当前被点击的这个用户的会话数据列表 比如: 与A用户的会话数据是 [{id:1}, {id:2}] 当我依次点击A

  • 这种地图效果是叫什么?具体该使用哪种技术实现,如何实现,有具体的示例吗?

  • 怎么在a函数里面 返回 list-1/2/ 。 注意: 不能写死 list , 因为 $reg 其实也是一个变量(正则表达式)。 后期可能改成 cate 就是返回 cate-1/2/ 改成 category 就是返回 category-1/2/

  • 直接上代码 我 span 高度是 6px; 如何使 div 高度自适应 span 高度? 目前执行的代码 div 高度是 22.5px