Zod
#
Define a schema for any non-primitive object
#
import { z } from "apps/hugo/content/docs/zod";
const mySchema = z.record(z.unknown());
Defining required attributes while allowing additional unknown properties
#
import { z } from "zod";
const mySchema = z
.object({
requiredAttribute: z.string(),
anotherRequiredAttribute: z.number(),
})
.passthrough();
Attribute should be an empty object and not a TypeScript {} which allows any object
#
import { z } from "zod";
const mySchema = z.object({
myObj: z.record(z.never()),
});
import { z } from 'zod';
const mySchema = z.object({
color: z.string().default('red').optional();
})
export type MySchemaInput = z.input<typeof mySchema>;