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