martes, 7 de agosto de 2018

Tipos parciales en TypeScript

En esta entrada vamos a ver que son las clases parciales en typescript.

Imaginemos un escenario relativamente habitual en el que declaramos una funcion como la siguiente:





esta funcion recibe como parametro un objeto de tipo CSSStyleDeclaration, que es una clase para definir una serie de estilos de un elemento del DOM como por ejemplo la alineacion, el background, alto, ancho etc. entre otras muchisimas propiedades.

La función unicamente muestra las propidades de dicho objecto.

Para llamar a la funcion, declaramos un objeto de tipo CSSStyleDeclaration:


Si quisieramos utilizar este objeto nos obligaría a definir todas las propiedades y asignarles "undefined", y son unas cuantas propiedades :-(
En la siguiente imagen podemos ver algunas de las propiedades que debemos asignar a dicho objeto:





De hecho, si nos fijamos en la siguiente imagen, el editor de código se "queja" de que no hemos asignado al objeto todas las propiedades de la clase CSSStyleDeclaration

Para estos casos podemos usar un tipo genérico que se llama Partial<T> el cual hace que al tipo de objeto que se aplica permite establecer el valor "undefined" a las propiedades que no han sido asignadas por nosotros.

Modificamos el codigo anterior para declarar los objetos como Partial

de esta forma el objeto styles tiene asignada las propiedades que hemos establecido y el resto
tienen el valor "undefined", y ya no se "queja" el editor.

En la declaración de la función tambien vamos a cambiar la declaración del parametro
para decirle que es "parcial"


Los tipos parciales como hemos visto pueden sernos de utilidad en determinadas circunstancias.

Codigo de ejemplo: https://gist.githubusercontent.com/jorgetrigueros/e99c8b14df99346774e8ec9bd70e8159/raw/ee43bc26b3e128622563b1b12df252fb3fd87c46/partialclass.ts




No hay comentarios:

Publicar un comentario