Ir al contenido

Interfaces de solo lectura en TypeScript

Mediante los interfaces de solo lectura en TypeScript podemos conseguir que las propiedades que estemos gestionando en una llamada a una función no puedan ser sobrescritas. De esta manera nos aseguramos que los valores que se pasan una vez creado el objeto son inmutables.

Para poder definir interfaces de solo lectura en TypeScript deberemos de seguir la siguiente estructura:

interface nombreInterface {
readonly propiedad: tipo-dato;
}

Es decir, delante de la propiedad que queremos sea de solo lectura anteponemos la palabra readonly. Podemos definir una, varias o todas las propiedades de un interface como readonly.

Ejemplo de interface con propiedades readonly

Sección titulada «Ejemplo de interface con propiedades readonly»

Por ejemplo, podríamos definir nuestro interface Persona con propiedades de solo lectura de la siguiente forma:

interface Persona {
readonly nombre: string;
readonly edad: number;
}

En este caso ambas propiedades: nombre y edad han sido definidas como readonly.

Podemos definir una función que asuma el control de alguno de sus parámetros mediante el interface Persona:

function datosPersona(p: Persona) {...}

Y podemos invocarla mediante un objeto que cumpla el interface:

let p1 = {nombre:'Carlos', edad:42, localidad:'Zamora'}
datosPersona(p1);

Lo que, bajo ningún concepto, no podremos hacer es modificar los atributos del objeto pasado a la función. Así, si escribimos el siguiente código, en el cual intentamos modificar la propiedad nombre dentro de la función:

function datosPersona(p: Persona) {
p.nombre = 'Víctor';
console.log(p.nombre);
}

Veremos que el compilador nos da un error e indica que no se puede modificar la propiedad al ser de solo lectura. De esta manera ya sabes que cuando quieras tener información inmutable dentro de una función simplemente tienes que utilizar interfaces de solo lectura en TypeScript.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Interfaces de solo lectura en TypeScript

Descubre cómo usar interfaces de solo lectura en TypeScript para garantizar propiedades inmutables en tus objetos y evitar modificaciones indeseadas.

Descargar código