Ir al contenido principal

Destacado

Node | Debug nestjs app en vscode

Recientemente me encontré trabajando en un proyecto basado en nestjs y una cosa que me sorprendió fue la cantidad de console.log distribuidos por todo el repositorio, señal de que el equipo lo usaba como su principal forma de depurar. Un poco old school para mí gusto para ser sincero, así que, ¿Por qué no usar vscode a tu favor? La siguiente configuración ademas de correr la app,  enlaza  el debugger al proceso node. En MacOS:   Ejecutar > Agregar configuración... Listo, ya podemos poner breakpoints en donde lo requiramos, sencillo no? C you space cowboy!

Typescript | keyof

Typescript es un "superconjunto" de JavaScript, lo que significa que extiende JavaScript agregando nuevas funcionalidades mientras conserva la sintaxis y el comportamiento de JavaScript.

Una de esas funcionalidades es el sistema de tipos estáticos que pone a nuestra disposición, que entre otras cosas, no permite ser explícitos con respecto a la forma de las interfaces que compondrán nuestra aplicación.

Además de los tipos primitivos, arreglos, literales, uniones, etc. Typescript nos permite crear tipos basados en otros tipos.

La forma más común es mediante el uso de genéricos pero además existen varios operadores de tipos que podemos usar, uno de ellos es keyof.


Tipos basados en otros tipos


Operador keyof.

Es un operador que toma un tipo de objeto y produce un tipo de unión literal con las propiedades del mismo.



En este ejemplo ClavesDePersona es un tipo de unión literal compuesto por: nombre y edad,  que corresponden a las "propiedades" del tipo Persona.

Todas las variables definidas usando este nuevo tipo sólo aceptarán como valor alguna de las cadenas pertenecientes a dicha unión; Asignar cualquier otra cadena resultará en un error de compilación.

Esto es particularmente útil cuando queremos trabajar con las propiedades de los objetos de una forma más "segura". 




Otros usos.

También se emplea en la creación de los famosos tipos mapeados (mapped types) que no son más que una forma de transformar un tipo existente para crear un tipo nuevo; Pero de ellos hablaremos en otra entrega.


C you, space cowboy!

Comentarios

Entradas populares