Interfaces con propiedades opcionales en TypeScript

20/Sep/2017 Typescript Deja un comentario
Programación TypeScript

Ya hemos visto como podemos realizar el control de propiedades obligatorias mediante la definición de interfaces en TypeScript. En este caso vamos a ver cómo podemos definir interfaces con propiedades opcionales en TypeScript.

Y es que en ciertas ocasiones puede ser que necesitemos de ciertas propiedades de forma obligatoria y otras que puedan venir o no.

A la hora de definir interfaces con propiedades opcionales en TypeScript tenemos que saber que hay que anteponer un símbolo de interrogación delante de la propiedad.

  1. interface nombreInterface {
  2. propiedad1?: tipo-dato;
  3. propiedad2?: tipo-dato;
  4. }

Si utilizamos el mismo ejemplo que teníamos en el artículo sobre cómo definir interfaces en TypeScript, veremos que definimos el interface Persona, pero en este caso la propiedad edad la definimos como opcional:

  1. interface Persona {
  2. nombre: string;
  3. edad?: number;
  4. }

El interface será el tipo de la variable que utilicemos en las funciones. En este caso definimos un método datosPersona que tiene esa variable.

  1. function datosPersona(p: Persona) {
  2. console.log(p.nombre);
  3. }

Cuando llamemos a esa función funcionará siempre que venga la propiedad nombre, e independientemente de que venga la propiedad edad o no.

Así funcionará esta invocación a la función:

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

Cómo esta otra invocación:

  1. let p2 = {nombre:'Carmen', localidad:'Zaragoza'};
  2. datosPersona(p2);

De esta forma tan sencilla podemos ser menos estrictos en las validaciones y definir interfaces con propiedades opcionales en TypeScript.

Vídeos sobre TypeScript


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*