0Pricing
TypeScript Academy · Lección

Propiedades readonly y propiedades de parámetros

Utilice readonly y la sintaxis abreviada de propiedades en constructores.

Propiedades readonly y propiedades de parámetros 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.

Bienvenida

readonly impide que las propiedades se modifiquen después de la inicialización. Las propiedades de parámetros combinan la declaración y la inicialización en una sola línea del constructor.

readonly en las propiedades de clase

Declare una propiedad como readonly para permitir que se establezca una vez (en el constructor), pero impedir cambios posteriores.
class Invoice {
  readonly invoiceId: string;
  constructor(id: string) { this.invoiceId = id; }
}
const inv = new Invoice('INV-001');
// inv.invoiceId = 'INV-002'; // Error!

readonly en las interfaces

readonly también funciona en interfaces y tipos de objetos para impedir la reasignación de propiedades.
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error

Propiedades de parámetros

Anteponer un modificador de acceso a un parámetro del constructor permite declarar una propiedad y asignarle un valor en un solo paso.
class Product {
  constructor(
    public name: string,
    public price: number,
    private sku: string
  ) {} // no need to write this.name = name; etc.
}

Propiedades de parámetros readonly

Combine `readonly` con un modificador de acceso para las propiedades de parámetros.
class Config {
  constructor(
    public readonly host: string,
    public readonly port: number = 3000
  ) {}
}

Inicialización en las declaraciones

Puede inicializar una propiedad readonly en el momento de declararla. Después de eso, no se puede modificar.
class AppVersion {
  readonly version: string = '1.0.0';
  readonly buildDate: Date = new Date();
}

readonly frente a const

`const` se utiliza para variables con ámbito de bloque. `readonly` se utiliza para propiedades de clases y miembros de tipos de objetos. Se aplican a ámbitos diferentes.
const API_KEY = 'secret'; // block variable
class Service {
  readonly key: string = API_KEY; // class property
}

Tipo de objeto Readonly

El tipo de utilidad `Readonly` hace que todas las propiedades de T sean readonly. Es útil para crear instantáneas inmutables.
interface User { name: string; age: number; }
const frozen: Readonly<User> = { name: 'Alice', age: 30 };
// frozen.name = 'Bob'; // Error

readonly no congela profundamente

Al igual que ReadonlyArray, readonly solo impide reasignar la propiedad en sí, no modificar el objeto al que apunta la propiedad.
class Team {
  readonly members: string[] = [];
}
const t = new Team();
t.members.push('Alice'); // Allowed — the array itself is mutable!
// t.members = []; // Error — can't reassign the property

Las propiedades de parámetros evitan código repetitivo

Sin propiedades de parámetros, debe declarar el campo, declarar el parámetro del constructor y asignarlo. Con ellas, una sola línea realiza las tres operaciones.
// Without parameter properties (verbose)
class A {
  private x: number;
  constructor(x: number) { this.x = x; }
}
// With parameter properties (concise)
class B {
  constructor(private x: number) {}
}

Cuándo evitar las propiedades de parámetros

Algunos equipos evitan las propiedades de parámetros en clases grandes porque ocultan las declaraciones de propiedades dentro del cuerpo de la clase, lo que reduce la legibilidad a simple vista.

Comprobación rápida

Al utilizar una propiedad de parámetro en TypeScript, ¿qué sigue siendo VERDAD sobre el modificador readonly?

Resumen

readonly impide modificar las propiedades después de la construcción. Las propiedades de parámetros (modificador de acceso + nombre del parámetro) declaran e inicializan propiedades en una sola línea. Combine ambas opciones para crear diseños de clases concisos e inmutables.

Preguntas frecuentes

¿La lección «Propiedades readonly y propiedades de parámetros» es gratis?

Sí — el texto completo de «Propiedades readonly y propiedades de parámetros» 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 «Propiedades readonly y propiedades de parámetros»?

Utilice readonly y la sintaxis abreviada de propiedades en constructores. 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 «Propiedades readonly y propiedades de parámetros»?

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. Clases y constructores de TypeScript
  2. Modificadores public, private y protected
  3. Propiedades readonly y propiedades de parámetros
  4. Implementación de interfaces con clases
← Volver a TypeScript Academy