Skip to main content
Module

x/zod/mod.ts>z.ZodObject

TypeScript-first schema validation with static type inference
Extremely Popular
Go to Latest
class z.ZodObject
import { z } from "https://deno.land/x/zod@v3.20.0/mod.ts";
const { ZodObject } = z;

Type Parameters

T extends ZodRawShape
optional
UnknownKeys extends UnknownKeysParam = "strip"
optional
Catchall extends ZodTypeAny = ZodTypeAny
optional
Output = objectOutputType<T, Catchall>
optional
Input = objectInputType<T, Catchall>

Properties

private
_cached: { shape: T; keys: string[]; } | null
augment
extend
deprecated
nonstrict
readonly
shape

Methods

_getCached(): { shape: T; keys: string[]; }
_parse(input: ParseInput): ParseReturnType<this["_output"]>
catchall<Index extends ZodTypeAny>(index: Index): ZodObject<T, UnknownKeys, Index>
deepPartial(): partialUtil.DeepPartial<this>
keyof(): ZodEnum<enumUtil.UnionToTupleString<keyof T>>
merge<Incoming extends AnyZodObject>(merging: Incoming): ZodObject<extendShape<T, ReturnType<Incoming["_def"]["shape"]>>, Incoming["_def"]["unknownKeys"], Incoming["_def"]["catchall"]>

Prior to zod@1.0.12 there was a bug in the inferred type of merged objects. Please upgrade if you are experiencing issues.

omit<Mask extends [k in keyof T]?: true>(mask: Mask): ZodObject<Omit<T, keyof Mask>, UnknownKeys, Catchall>
partial<Mask extends [k in keyof T]?: true>(mask: Mask): ZodObject<objectUtil.noNever<[k in keyof T]: k extends keyof Mask ? ZodOptional<T[k]> : T[k]>, UnknownKeys, Catchall>
passthrough(): ZodObject<T, "passthrough", Catchall>
pick<Mask extends [k in keyof T]?: true>(mask: Mask): ZodObject<Pick<T, Extract<keyof T, keyof Mask>>, UnknownKeys, Catchall>
required<Mask extends [k in keyof T]?: true>(mask: Mask): ZodObject<objectUtil.noNever<[k in keyof T]: k extends keyof Mask ? deoptional<T[k]> : T[k]>, UnknownKeys, Catchall>
setKey<Key extends string, Schema extends ZodTypeAny>(key: Key, schema: Schema): ZodObject<T & [k in Key]: Schema, UnknownKeys, Catchall>
strict(message?: errorUtil.ErrMessage): ZodObject<T, "strict", Catchall>
strip(): ZodObject<T, "strip", Catchall>

Static Properties

create: <T extends ZodRawShape>(shape: T, params?: RawCreateParams) => ZodObject<T>
lazycreate: <T extends ZodRawShape>(shape: () => T, params?: RawCreateParams) => ZodObject<T>
strictCreate: <T extends ZodRawShape>(shape: T, params?: RawCreateParams) => ZodObject<T, "strict">