runtime-type-reconstruction

📁 marius-townhouse/effective-typescript-skills 📅 10 days ago
1
总安装量
1
周安装量
#55038
全站排名
安装命令
npx skills add https://github.com/marius-townhouse/effective-typescript-skills --skill runtime-type-reconstruction

Agent 安装分布

mcpjam 1
openhands 1
replit 1
windsurf 1
zencoder 1

Skill 文档

Know How to Reconstruct Types at Runtime

Overview

TypeScript types are erased at runtime, but sometimes you need to validate that runtime data matches your types. Use libraries like io-ts, zod, or runtypes to define schemas that provide both runtime validation and static types. This ensures your types match reality.

When to Use This Skill

  • Validating data at runtime
  • Parsing JSON with type safety
  • Types need runtime checks
  • Using io-ts, zod, or runtypes
  • Building validation schemas

The Iron Rule

Use validation libraries like zod or io-ts to get both runtime validation and TypeScript types from a single source of truth.

Example with Zod

import { z } from 'zod';

// Define schema once
const UserSchema = z.object({
  id: z.string(),
  name: z.string(),
  email: z.string().email(),
  age: z.number().optional(),
});

// Get TypeScript type from schema
type User = z.infer<typeof UserSchema>;

// Runtime validation
const result = UserSchema.safeParse(unknownData);
if (result.success) {
  // result.data is typed as User
  console.log(result.data.name);
} else {
  console.error(result.error);
}

Reference

  • Effective TypeScript, 2nd Edition by Dan Vanderkam
  • Item 74: Know How to Reconstruct Types at Runtime