Anuncios

Bienvenidos sean a este post, hoy veremos type nuevamente.

Anuncios

En este post vimos como eran alias de tipos (type) y como nos permitian poder definir tipos especiales. Pero si esto lo combinamos con genericos podemos lograr una herramienta muy poderosa, la cual nos puede permitir crear tipos basados en otros tipos. Para entender el concepto vamos a analizar el siguiente codigo:

interface IRequerido {
        id: number;
        nombre: strring;
}
let obj: IRequerido = {
        id: 1,
        nombre: "tinchicus"
}

type WeakInterfaces<T> = {
        [K in keyof T]?: T[K];
}

let opcional: WeakInterfaces<IRequerido> = {};
Anuncios
Anuncios

Primero definiremos una interfaz que contendra dos propiedades que son «requeridas». Lo siguiente es crear una variable del tipo de la interfaz donde estableceremos los valores de las dos propiedades. Lo siguiente sera crear un alias llamado WeakInterfaces mediante type. En esta usaremos un tipo generico pero internamente las propiedades de esta tabla seran los nombres de las propiedades que usaremos como generico, esto es gracias al uso de in y keyof, pero le adicionaremos un operador de opcional. Si no recuerdan cuando nosotros establecemos todas las propiedades como opcionales se las denomina como Weak,, de ahi el nombre, y si bien pueden ser opcionales solamente podremos usar esas, en este post hablamos sobre este tema y vimos otro ejemplo. El tipo sera asignado en base al que contiene esa clave. Por ultimo creamos un objeto donde usaremos el type anterior y le pasaremos la interfaz como tipo generico y lo dejaremos en blanco. Si lo compilan no devolvera ningun error pero no veremos nada, tomemos el codigo anterior y modifquemos la siguiente linea:

let opcional: WeakInterfaces<IRequerido> = {};
Anuncios

De la siguiente manera:

let opcional: WeakInterfaces<IRequerido> = { id: 2 };
Anuncios

En este caso establecemos un valor para id y a continuacion agreguen las siguientes dos lineas:

console.log(opcional.id);
console.log(opcional.nombre);
Anuncios

Estas se encargaran de mostrar los valores de las propiedades en nuestro objeto. Compilemos y veamos como es su salida ahora:

tinchicus@dbn001vrt:~/lenguajes/ts/25$ node tipos.js
2
undefined
tinchicus@dbn001vrt:~/lenguajes/ts/25$
Anuncios

En el primer caso nos devolvio el valor establecido pero como ahora nuestras propiedades son opcionales al no informar la segunda toma el valor de undefined. Hasta aqui vemos que funciona perfectamente pero lo mas interesante es el concepto de type. Por que en este caso mediante in y keyof pudimos obtener las claves y crear mapa de nuestro tipo generico y luego le asignamos el tipo que posee en el tipo informado.

Anuncios

En resumen, hoy hemos visto como crear un type mapeado, una forma practica mediante una interface y luego con el type, in y keyof, para finalmente ver como funciona mediante un ejemplo, espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50