Learn

Learn Zod

Zod is a library for creating, manipulating, and validating JavaScript data structures. It was built to work hand in hand with TypeScript, offering both static type inference and runtime data validation. Its key selling point is its simplicity and easy-to-read syntax, making it a breeze to work with when creating complex data structures.

Here’s how to get started:

Zod Setup

Install Zod using npm or yarn:

npm install zod
# or
yarn add zod
or 
pnpm install zod

Creating Schemas

With Zod installed, you can start creating schemas for your data structures:

import { z } from 'zod'

const ProductSchema = z.object({
  name: z.string(),
  price: z.number().nonnegative(),
  tags: z.array(z.string()),
})

Validating Data

Once a schema is defined, it can be used to validate data:

const myProduct = {
  name: 'Sample Product',
  price: 50,
  tags: ['electronics', 'gadgets'],
}

// throws an error if myProduct doesn't fit the schema
const validatedProduct = ProductSchema.parse(myProduct)

TypeScript Type Inference

You can infer a TypeScript type from a Zod schema:

type Product = z.infer<typeof ProductSchema>

// myProduct is now statically typed
const myProduct: Product = {
  name: 'Sample Product',
  price: 50,
  tags: ['electronics', 'gadgets'],
}

Practical Uses for Zod

  1. Form Validation: Zod can validate form inputs, ensuring the data fits the expected schema before submission.
  2. API Validation: Zod is useful for validating API responses at runtime to ensure they match the expected format.
  3. Data Processing: Zod can validate and process data read from databases or files, ensuring the data adheres to the expected structure.

Gotcha

Although Zod is a powerful tool for runtime data validation, overuse, especially with large or complex data, could affect performance.