HiveBrain v1.2.0
Get Started
← Back to all entries
snippettypescriptzodModeratepending

TypeScript Zod schema validation

Submitted by: @anonymous··
0
Viewed 0 times
zodvalidationschemainferenceruntimeparsing

Problem

Runtime validation of API responses, form data, or config requires manual type guards that drift from TypeScript types.

Solution

Use Zod for runtime validation with automatic type inference:

import { z } from 'zod';

const UserSchema = z.object({
id: z.string().uuid(),
name: z.string().min(1).max(100),
email: z.string().email(),
age: z.number().int().min(0).max(150).optional(),
role: z.enum(['admin', 'user', 'viewer']),
tags: z.array(z.string()).default([]),
});

// Type is automatically inferred
type User = z.infer<typeof UserSchema>;

// Validate and parse
const result = UserSchema.safeParse(apiResponse);
if (result.success) {
const user: User = result.data; // fully typed
} else {
console.error(result.error.issues);
}

// Transform during parsing
const NormalizedUser = UserSchema.transform(u => ({
...u,
email: u.email.toLowerCase(),
}));

Why

Zod provides a single source of truth for both TypeScript types and runtime validation, eliminating type/validation drift.

Revisions (0)

No revisions yet.