Data validation plays a crucial role in software development to ensure data integrity and prevent errors. In this article, we will explore the process of converting TypeScript code to Zod schemas to establish effective data validation. By leveraging Zod's powerful validation capabilities.
- Install Zod:
npm install zod
or
yarn add zod
- .Import zod :
import { z } from 'zod';
- Convert TypeScript Types to Zod Schemas:
import * as z from 'zod';
type Status = 'active' | 'inactive';
const statusSchema = z.union([z.literal('active'), z.literal('inactive')]);
// Typescript type
interface User {
name: string;
age: number;
status: Status;
email?: string;
}
// Zod Schema
const userSchema = z.object({
name: z.string(),
age: z.number(),
status: statusSchema,
email: z.string().optional(),
});
- Define Validation Rules:
import * as z from 'zod';
const statusSchema = z.union([z.literal('active'), z.literal('inactive')]);
const userSchema = z.object({
name: z.string(),
age: z.number(),
status: statusSchema,
email: z.string().optional(),
});
- Validate data :
const userData = {
name: 'Mohan',
age: 25,
status: 'active',
email: 'mohan@example.com',
};
try {
const validatedData = userSchema.parse(userData);
console.log(validatedData); // Validated data
} catch (error) {
if (error instanceof z.ZodError) {
console.error(error.errors); // Validation errors
} else {
console.error('An error occurred during validation.');
}
}