Comprobación de propiedades adicionales y frescura
Descubra por qué las propiedades adicionales provocan errores en algunos contextos.
Comprobación de propiedades adicionales y frescura es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 4 lecciones en total.
¿Qué es la frescura?
La frescura es un concepto de TypeScript según el cual los literales de objeto se consideran "frescos" en el momento de su creación. Los objetos frescos se someten a una comprobación estricta de propiedades excesivas que no se aplica a los objetos ampliados.
interface Point { x: number; y: number; }
const p: Point = { x: 1, y: 2, z: 3 }; // Error: 'z' not in PointComprobación de propiedades excesivas en acción
Cuando asigna un literal de objeto directamente a una variable tipada o lo pasa como argumento de una función, TypeScript informa de las propiedades adicionales que no están incluidas en el tipo de destino.
function setPoint(p: { x: number; y: number }) {}
setPoint({ x: 1, y: 2, z: 3 }); // Error: 'z' excess propertyPor qué existe la comprobación de propiedades excesivas
Detecta errores tipográficos y propiedades no deseadas en objetos de configuración, una fuente habitual de errores en JavaScript.
interface Options { timeout: number; retry?: boolean; }
const opts: Options = { timeout: 3000, retrey: true }; // Error — typo!Cómo se pierde la frescura
Una vez que un literal de objeto se asigna a una variable intermedia, deja de ser "fresco" y la comprobación de propiedades excesivas no se aplica al tipo ampliado.
const opts = { timeout: 3000, retry: true, extra: "surprise" };
const o: Options = opts; // No error — freshness lost on assignmentLas aserciones de tipo omiten la frescura
El uso de aserciones de tipo as también omite las comprobaciones de propiedades excesivas, lo que puede ocultar errores.
const o = { timeout: 3000, typo: true } as Options; // No errorComprobación de propiedades excesivas con tipos intersección
Los tipos intersección pueden relajar en algunos casos las comprobaciones de propiedades excesivas, porque las propiedades adicionales pueden pertenecer a uno de los miembros de la intersección.
type A = { x: number };
type B = { y: number };
const ab: A & B = { x: 1, y: 2 }; // OKPropiedades readonly y propiedades excesivas
La comprobación de propiedades excesivas también se aplica a los tipos de objeto readonly: la regla se refiere a la estructura, no a la mutabilidad.
interface Cfg { readonly host: string; }
const c: Cfg = { host: "localhost", port: 3000 }; // ErrorFirmas de índice y propiedades excesivas
Añadir una firma de índice a un tipo permite cualquier propiedad adicional con clave de tipo string, lo que desactiva de hecho la comprobación de propiedades excesivas para ese tipo.
interface Flexible { name: string; [key: string]: unknown; }
const f: Flexible = { name: "ts", extra: true }; // OKPropiedades opcionales y frescura
Las propiedades opcionales no relajan la comprobación de propiedades excesivas. Una propiedad que no aparece en la lista, ni siquiera como opcional, se sigue notificando como excesiva.
interface Shape { color?: string; }
const s: Shape = { color: "red", size: 10 }; // Error: 'size' excessPatrones prácticos
Para pasar propiedades de configuración adicionales a través de una interfaz tipada sin errores, use una variable intermedia o una firma de índice en la interfaz.
// Option 1: intermediate variable (freshness lost)
const cfg = { timeout: 3000, debugMode: true };
const o: Options = cfg;
// Option 2: index signature in interfaceResumen: frescura
La frescura se aplica a los literales de objeto frescos y permite comprobar las propiedades excesivas en el momento de la asignación. Asigne el objeto a una variable intermedia o use una firma de índice para permitir propiedades adicionales.
Comprobación rápida
¿Cuándo NO se aplica la comprobación de propiedades excesivas?
Lo que ha aprendido
La frescura y la comprobación de propiedades excesivas le protegen frente a errores tipográficos y propiedades no deseadas en los literales de objeto. Comprenda cuándo se pierde la frescura para evitar errores de tipos inesperados o errores ocultos.
Preguntas frecuentes
¿La lección «Comprobación de propiedades adicionales y frescura» es gratis?
Sí — el texto completo de «Comprobación de propiedades adicionales y frescura» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Comprobación de propiedades adicionales y frescura»?
Descubra por qué las propiedades adicionales provocan errores en algunos contextos. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar TypeScript Academy?
No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Comprobación de propiedades adicionales y frescura»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?
Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Mecánica de ampliación y reducción de tipos
- Tipado contextual: inferencia a partir del contexto
- Comprobación de propiedades adicionales y frescura
- Aserciones const y as const