Zod:从默认值创建一个原始对象

Dra*_*nap 10 javascript json zod

我很确定这个存在,但尽管进行了一些挖掘,我仍然无法找到任何有关它的信息。假设我有一个zod这样的架构:

const Person = zod.object({
    name: z.string().default(''),
    age: z.number().nullable();
});
Run Code Online (Sandbox Code Playgroud)

有没有办法创建这样的东西:

const InstancePerson = {
    name: '',
    age: null
}
Run Code Online (Sandbox Code Playgroud)

zod架构?

Cha*_*eer 10

我知道我参加聚会有点晚了,但也许这会对将来的某人有所帮助。

您可以zod通过以下方式扩展您的架构:

const Person = zod.object({
    name: z.string().default(''),
    age: z.number().nullable().default(null)
}).default({}); // .default({}) could be omitted in this case but should be set in nested objects
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过调用以下命令来检索所需的输出:

const InstancePerson = Person.parse({});
Run Code Online (Sandbox Code Playgroud)