zodの備忘録


z.array 配列型
const stringArraySchema = z.array(z.string())
// 以下の記法と同様
// const stringArraySchema = z.string().array()

z.nullable null許容型
const nullableStringSchema = z.string().nullable()

z.optional optional(undefined)許容型
const optionalStringSchema = z.string().optional()

z.nullish nullかつoptionalな型
const nullishStringSchema = z.string().nullish()
// 以下の記法と同様
// const nullishStringSchema = z.string().nullable().optional()

z.literal string型, number型, boolean型などの特定の値が入る型
const messageSchema = z.literal("message")
const oneSchema = z.literal(1)
const trueSchema = z.literal(true)

type Message = z.infer<typeof messageSchema>
// "message"
type One = z.infer<typeof oneSchema>
// 1
type True = z.infer<typeof trueSchema>
// true

z.union 複数の型のいずれかに一致する型
const stringOrNumberSchema = z.union([z.string(), z.number()])
// 引数が配列であることを忘れやすいので注意
// 以下の記法と同様
// const stringOrNumberSchema = z.string().or(z.number())

z.nonempty 空文字列を許容しないstringconst nonemptyStringSchema = z.string().nonempty()
// nonemptyとは逆に、空文字列のみを許容するstring型は以下のように書く
const emptyStringSchema = z.string().length(0)

z.any どの型でも許容する型
const anySchema = z.any()

z.unknown どの型でも許容するが、型が確定するまでプロパティやメソッドを参照できない
const unknownSchema = z.unknown()

この記事が気に入ったらサポートをしてみませんか?