Existen dos modificadores adicionales que pueden ser aplicados durante el proceso de mapeo: readonly
y ?
que afectan la mutabilidad y opcionalidad de las propiedades.
Se pueden agregar o eliminar estos modificadores utilizando el prefijo -
o +
. Si no se agrega el prefijo, entonces se asume +
.
type TipoMutable<T> = {
-readonly [P in keyof T]: T[P];
};
type CuentaBloqueada = {
readonly id: string;
readonly nombre: string;
};
type CuentaDesbloqueada = TipoMutable<CuentaBloqueada>;
const usuario1: CuentaBloqueada = {
id: "0x00001",
nombre: "Nora",
};
usuario1.nombre = "Daniela"; // <- esta linea generará un error ya que es solo lectura
const usuario2: CuentaDesbloqueada = {
id: "0x00001",
nombre: "Abel",
};
usuario2.nombre = "Tomas"; // <- si podemos reasignar valores