Saltar al contenido
Readonly

    ↑↓ mover · ⏎ abrir · esc cerrar

    Formas de objeto

    Readonly

    Añade `readonly` a cada propiedad de un objeto, un nivel de profundidad.

    Qué es

    El tipo mapeado homomórfico estándar para una vista de solo lectura. Recorre `keyof T`, añade el modificador a cada propiedad y conserva el resto de la forma. “Vista” importa: el JavaScript generado no congela nada y un alias mutable aún puede cambiar el mismo objeto.

    Ejemplos

    • Readonly<{ a: string; b: number }>
      { readonly a: string; readonly b: number; }
    • Readonly<{ nested: { value: number } }>
      { readonly nested: { value: number; }; }

      La referencia exterior es de solo lectura; `nested.value` no.

    • Readonly<[1, 2]>
      readonly [1, 2]

    Cada tipo resuelto de arriba lo imprimió TypeScript 6.0.3, no se escribió a mano.

    Lo que no hace

    • No es profundo. Los objetos anidados conservan sus modificadores, así que una propiedad de solo lectura puede apuntar a datos mutables.
    • No llama a `Object.freeze` ni sobrevive en tiempo de ejecución. Restringe asignaciones visibles para el compilador, no mutaciones hechas en otro lugar.

    Conclusión

    `Readonly<T>` es una vista de un nivel y de solo lectura en compilación. Usa recursión para profundidad y una operación de ejecución para congelar de verdad.