如何使用zod为任何TypeScript类型创建模式?

2jcobegt  于 2023-08-07  发布在  TypeScript
关注(0)|答案(1)|浏览(165)

如何用外部接口/类型扩展zod的类型。我尝试使用z.custom<>,但无法获得预期的结果。
这里的类型无关紧要,因为它是任意的,我想得到这个类型,并在zod中使用它。

import * as z from 'zod'

import { MyType } from '.myType'

const mySchema = z.object({
  custom: z.custom<MyType>()
})

字符串

m1m5dgzv

m1m5dgzv1#

如文件所述:If you don't provide a validation function, Zod will allow any value. This can be dangerous!
通常/推荐的Zod方法是将模式创建为const MyType = z./* [...] */,然后将类型提取为type MyType = z.infer<typeof MyType>;
如果你想走另一条路(这对很多人来说更有意义,因为它是一个松散的耦合),有像ts-to-zod这样的东西可以自动为你的接口和类型创建模式。

相关问题