Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsMay 15, 2026·3 min de lectura

io-ts — Runtime Type Validation with Static TypeScript Inference

Codec-based validation library that encodes and decodes data at runtime while inferring TypeScript types from schemas.

Listo para agents

Este activo puede ser leído e instalado directamente por agents

TokRepo expone un comando CLI universal, contrato de instalación, metadata JSON, plan según adaptador y contenido raw para que los agents evalúen compatibilidad, riesgo y próximos pasos.

Native · 98/100Política: permitir
Superficie agent
Cualquier agent MCP/CLI
Tipo
Skill
Instalación
Single
Confianza
Confianza: Established
Entrada
io-ts Overview
Comando CLI universal
npx tokrepo install f1ad4d1a-4ff5-11f1-9bc6-00163e2b0d79

Introduction

io-ts is a runtime type validation library for TypeScript built on top of fp-ts. It uses codecs that both decode unknown data into typed values and encode typed values back into serializable formats. Every codec automatically derives a static TypeScript type, ensuring compile-time and runtime type safety stay in sync without duplication.

What io-ts Does

  • Decodes unknown input into typed TypeScript values with error reporting
  • Encodes typed values back to serializable output formats
  • Infers static TypeScript types from codec definitions via TypeOf
  • Composes complex codecs from primitives using intersection, union, and partial
  • Integrates with fp-ts Either for functional error handling

Architecture Overview

io-ts defines codecs as objects with decode and encode methods. Decode takes unknown input and returns an Either: Left for errors with detailed path information, or Right for the validated value. Codecs compose through combinators like t.type, t.array, t.union, and t.intersection. The library uses fp-ts conventions throughout, making it natural to pipe validation results into functional pipelines.

Self-Hosting & Configuration

  • Install io-ts and fp-ts as peer dependencies
  • Define codecs in shared modules and export both the codec and its inferred type
  • Requires TypeScript 3.5 or later for proper type inference
  • Works in Node.js, browsers, and any JavaScript runtime
  • No build-time code generation or CLI tools needed

Key Features

  • Bidirectional codecs that both validate input and serialize output
  • Automatic TypeScript type inference from codec definitions
  • Detailed error reporting with paths to invalid fields
  • Composable codec combinators for unions, intersections, and recursive types
  • Tight integration with fp-ts for functional error handling

Comparison with Similar Tools

  • Zod — standalone with method-chaining API; no fp-ts dependency needed
  • ArkType — string-based TypeScript syntax; faster editor inference
  • Superstruct — lighter weight with coercion support; no encode/decode duality
  • fp-ts Schema — newer fp-ts companion that may eventually supersede io-ts

FAQ

Q: Do I need fp-ts to use io-ts? A: Yes. io-ts returns fp-ts Either values from decode and uses fp-ts conventions. If you prefer a standalone library, consider Zod or ArkType instead.

Q: What is the difference between decode and encode? A: Decode validates unknown input and produces a typed value. Encode converts a typed value back to a serializable format, useful for API responses or storage.

Q: Can io-ts handle recursive types? A: Yes. Use t.recursion to define self-referencing codecs like tree structures or linked lists.

Q: Is io-ts actively maintained? A: The library is stable and widely used. Development has slowed as the author explores fp-ts Schema as a successor, but io-ts remains reliable for production use.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados