首页 新闻 会员 周边 捐助

tRPC是否支持部分参数的验证以确保更新只传入必要的参数?

0
[待解决问题]

tRPC 一般是使用z.object()来进行参数验证的。

举例:

interface Proj {
  id: number,
  projName: string,
  desc?: string
}


export const projUpdate = publicProcedure.input(
  z.object({
    id: z.number(),
    projName: z.string(),
    desc: z.string()
  })
).mutation(({ input: {id, projName, desc} }) => {
  dataBase.getRepository(Proj).createQueryBuilder('proj').where('proj.id = :id', {id: id}).update({
    projName: projName,
    desc: desc
  })
})

现在有一个需求问题:
1、请问是否是可以进行类型Proj验证呢?因为更新实例Proj,我们一般传输部分参数为:Partial<Proj>即可,但是这里是:
全验证:

z.object({
    id: z.number(),
    projName: z.string(),
    desc: z.string()
  })

2、表现:使用时候报错:

export const addProj = async(proj: Proj) => {
  return await trpc.projCreate.mutate(proj)  // 这里报错
}

请问是否可以进行Partial 可选参数传入更新呢?

架构师之路123的主页 架构师之路123 | 初学一级 | 园豆:164
提问于:2024-12-19 18:08
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册