TypeScript types disappear at runtime. Deepkit changes that.
Define your types once and use them everywhere—validation, serialization, database, HTTP, RPC, and dependency injection. No schema duplication. No code generation. Just TypeScript.
The Problem
In traditional TypeScript development, you define your types, then redefine them for runtime use:
// 1. TypeScript interface
interface User {
id: number;
email: string;
createdAt: Date;
}
// 2. Zod schema for validation