Zod Core
Este subpaquete exporta las clases y utilidades centrales que consumen Zod y Zod Mini. No está pensado para ser usado directamente; en su lugar, está diseñado para ser extendido por otros paquetes. Implementa:
Esquemas
La clase base para todos los esquemas de Zod es $ZodType. Acepta dos parámetros genéricos: Output e Input.
zod/v4/core exporta una serie de subclases que implementan algunos analizadores comunes. Una unión de todas las subclases de origen se exporta como z.$ZodTypes.
Internos
Todas las subclases de zod/v4/core solo contienen una única propiedad: _zod. Esta propiedad es un objeto que contiene los internos del esquema. El objetivo es hacer que zod/v4/core sea tan extensible y no opinado como sea posible. Otras bibliotecas pueden "construir su propio Zod" sobre estas clases sin que zod/v4/core abarrote la interfaz. Consulta las implementaciones de zod y zod/mini para ver ejemplos de cómo extender estas clases.
La propiedad interna _zod contiene algunas propiedades notables:
.def— La definición del esquema: este es el objeto que pasas al constructor de la clase para crear una instancia. Describe completamente el esquema y es serializable a JSON..def.type— Una cadena que representa el tipo del esquema, por ejemplo,"string","object","array", etc..def.checks— Una matriz de comprobaciones que son ejecutadas por el esquema después del análisis.
.input— Una propiedad virtual que "almacena" el tipo de entrada inferido del esquema..output— Una propiedad virtual que "almacena" el tipo de salida inferido del esquema..run()— La implementación del analizador interno del esquema.
Si estás implementando una herramienta (digamos, un generador de código) que debe recorrer esquemas de Zod, puedes convertir cualquier esquema a $ZodTypes y usar la propiedad def para discriminar entre estas clases.
Hay una serie de subclases de $ZodString que implementan varios formatos de cadena. Estos se exportan como z.$ZodStringFormatTypes.
Análisis (Parsing)
Como las clases de esquema de Zod Core no tienen métodos, hay funciones de nivel superior para analizar datos.
Comprobaciones (Checks)
Cada esquema de Zod contiene una matriz de comprobaciones. Estas realizan refinamientos post-análisis (y ocasionalmente mutaciones) que no afectan el tipo inferido.
La clase base para todas las comprobaciones de Zod es $ZodCheck. Acepta un único parámetro genérico T.
La propiedad interna _zod contiene algunas propiedades notables:
.def— La definición de la comprobación: este es el objeto que pasas al constructor de la clase para crear la comprobación. Describe completamente la comprobación y es serializable a JSON..def.check— Una cadena que representa el tipo de la comprobación, por ejemplo,"min_length","less_than","string_format", etc.
.check()— Contiene la lógica de validación de la comprobación.
zod/v4/core exporta una serie de subclases que realizan algunos refinamientos comunes. Todas las subclases de origen se exportan como una unión llamada z.$ZodChecks.
Puedes usar la propiedad ._zod.def.check para discriminar entre estas clases.
Al igual que con los tipos de esquema, hay una serie de subclases de $ZodCheckStringFormat que implementan varios formatos de cadena.
Usa un switch anidado para discriminar entre las diferentes comprobaciones de formato de cadena.
Notarás que algunas de estas comprobaciones de formato de cadena se superponen con los tipos de formato de cadena anteriores. Esto se debe a que estas clases implementan tanto las interfaces $ZodCheck como $ZodType. Es decir, se pueden usar como una comprobación o un tipo. En estos casos, tanto ._zod.parse (el analizador del esquema) como ._zod.check (la validación de la comprobación) se ejecutan durante el análisis. En efecto, la instancia se antepone a su propia matriz checks (aunque en realidad no existirá en ._zod.def.checks).
Errores
La clase base para todos los errores en Zod es $ZodError.
Por razones de rendimiento, $ZodError no extiende la clase Error incorporada. Por lo tanto, usar instanceof Error devolverá false.
- El paquete
zodimplementa una subclase de$ZodErrorllamadaZodErrorcon algunos métodos de conveniencia adicionales. - El subpaquete
zod/miniusa directamente$ZodError
Problemas (Issues)
La propiedad issues corresponde a una matriz de objetos $ZodIssue. Todos los problemas extienden la interfaz z.$ZodIssueBase.
Zod define los siguientes subtipos de problemas:
Para obtener detalles sobre cada tipo, consulta la implementación.

