0Pricing
TypeScript Academy · Lección

Aserciones const y as const

Utilice as const para inferir con precisión tipos literales y de tupla.

Aserciones const y as const es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 4 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 as const?

as const es una aserción de tipo que indica a TypeScript que infiera los tipos literales más específicos posibles para una expresión y que convierta todas las propiedades en readonly.

const colors = ["red", "green", "blue"] as const;
// type: readonly ["red", "green", "blue"]

Cómo evitar la ampliación con as const

Sin as const, los valores de tipo string en arrays y objetos se amplían a string. Con él, conservan sus tipos literales.

const dir1 = { direction: "left" };
// dir1.direction: string

const dir2 = { direction: "left" } as const;
// dir2.direction: "left"

as const en literales de objeto

Todas las propiedades de un objeto con as const se convierten en readonly y conservan recursivamente su tipo literal.

const theme = {
  color: "dark",
  sizes: { sm: 8, md: 16 },
} as const;
// theme.color: "dark", theme.sizes.sm: 8 (all readonly)

as const para tipos tupla

Los arrays con as const se convierten en tuplas readonly cuyos elementos tienen tipos literales, lo que resulta útil para definir listas fijas de argumentos.

const args = [1, "hello", true] as const;
// type: readonly [1, "hello", true]

Derivar tipos unión a partir de as const

Un patrón habitual consiste en definir un array de valores con as const y derivar después un tipo unión a partir de él mediante typeof y el acceso indexado.

const STATUSES = ["pending", "active", "done"] as const;
type Status = typeof STATUSES[number];
// type Status = "pending" | "active" | "done"

as const en argumentos de funciones

Puede usar as const en línea al llamar a funciones para conservar los tipos literales a través de la llamada.

function setMode(mode: "dark" | "light") {}
setMode("dark" as const); // safe, preserves literal

Recursividad de readonly

as const aplica Readonly de forma recursiva. Los objetos y arrays anidados se convierten en readonly, lo que evita las mutaciones profundas.

const config = { db: { host: "localhost", port: 5432 } } as const;
// config.db.port = 5433; // Error: readonly

as const frente a Object.freeze

as const es una aserción en tiempo de compilación y no ofrece protección en tiempo de ejecución. Object.freeze actúa en tiempo de ejecución. Cumplen funciones complementarias.

const obj = Object.freeze({ x: 1 }); // runtime immutability
const obj2 = { x: 1 } as const;      // compile-time literal types

Aserciones const frente a anotaciones de tipos

Una anotación de tipos amplía: const x: string = "hi" proporciona el tipo string. as const restringe: const x = "hi" as const proporciona "hi".

const a: string = "hi"; // type: string
const b = "hi" as const; // type: "hi"

Uso práctico: objetos similares a enum

Muchos proyectos usan objetos as const como alternativa a los enums, evitando sus inconvenientes y conservando la seguridad de tipos.

const Direction = { Up: "UP", Down: "DOWN" } as const;
type Direction = typeof Direction[keyof typeof Direction];
// "UP" | "DOWN"

Recapitulación: as const

as const hace que TypeScript infiera tipos literales y trate todas las propiedades como de solo lectura. Es esencial para derivar tipos unión precisos a partir de arrays y crear objetos de configuración seguros.

Comprobación rápida

¿Qué hace as const con un array?

Lo que ha aprendido

as const es una herramienta potente para fijar tipos literales, crear estructuras de solo lectura y derivar tipos unión precisos a partir de arrays. Es fundamental para los patrones avanzados de TypeScript.

Preguntas frecuentes

¿La lección «Aserciones const y as const» es gratis?

Sí — el texto completo de «Aserciones const y as const» 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 «Aserciones const y as const»?

Utilice as const para inferir con precisión tipos literales y de tupla. 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 4 de 4.

¿Cuánto tiempo toma la lección «Aserciones const y as const»?

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

  1. Mecánica de ampliación y reducción de tipos
  2. Tipado contextual: inferencia a partir del contexto
  3. Comprobación de propiedades adicionales y frescura
  4. Aserciones const y as const
← Volver a TypeScript Academy