Hace ya dos años que empecé a trabajar con Angular y, no voy a mentir, al principio Typescript se me hizo rarísimo. Nunca había tocado ninguna de las dos tecnologías antes, así que los archivos .ts se me hicieron un poco cuesta arriba, con lo diferente que se me hacía este framework desarrollado por Google. Por este motivo, aquí voy a dejar una serie de pinceladas para aquellos que se inician en typescript.
¿Qué es?
Typescript es un superset de Javascript, es decir, puede ejecutar código tanto de Javascript como el suyo propio. Sin embargo, la mayoría de los navegadores no entienden este lenguaje, así que necesita ser transpilado a Javascript para que este pueda ser entendido.
Fue desarrollado en 2012 ya que Javascript presentaba algunos problemas para crear aplicaciones a gran escala: no tiene tipado, no tenía clases ni módulos… Por este motivo, fue creado por Microsoft, creando un lenguaje que, hoy en día, se mantiene a la vanguardia.
Variables tipadas
Su principal características es que es tipado. Podemos especificar el tipo de la variable despues de su nombre. Este tipado incluye los tipos primitivos, como los boolean, los arrays, los objetos…
Dentro de los tipados, Typescript ofrece algunas opciones muy interesantes como:
Tipos literales: Puedes especificarle a las variables que serán un string o number en concreto.
Tuplas: Es un array de tamaño fijo y al que le dices su tipo para cada elemento.
Tipos dinámicos: El tipo any te permite que esa variable guarde un valor de cualquier tipo. Para conocer la diferencia entre any y unknow podemos leer este artículo.
Tipo genéricos: Son complejos pero de gran utilidad. Nos permite reutilizar código y, para resumir, permiten trabajar con varios tipos. Puedes leer más sobre los genéricos aquí.
Enum
Son una característica muy interesante de este lenguaje. Suponen una lista de valores relacionadas, que son constantes.
Funciones
Las funciones también se tipan, tanto lo que devuelven, como cada uno de sus parámetros.
Interfaces y classes
Las interfaces se parecen bastante a las de otros lenguajes. Son una estructura que define una sintaxis que debe seguirse. Las interface no son compiladas, sino que se emplean para comprobar el tipado.
Propiedades opcionales
Relacionado con las interfaces, a veces deseamos indicar que algunas propiedades serán opcionales. Para hacer esto utilizamos el encadenamiento opcional, con un interrogante.
Tipos combinados
Puedes indicar que una variable será de un tipo o de otro, y también podemos decirle que es una clase que implementa una interfaz.
Type Assertion
Parecido a la conversión de tipos, o casting, de otros lenguajes.
Nombramiento
Typescript usa camelCase para variables, funciones, atributos, propiedades y métodos y PascalCase para Interfaces y Clases.