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 可选参数传入更新呢?