100 días de código: 63, comenzar a aprender typescript
Tags: spanish, 100daysofcode, typescript, beginners
Published: 2022-02-02 22:29:55

¡Hey hey hey!

Comenzar a aprender typescript puede volverse tedioso a pesar de que realmente no es difícil para un programador que conoce Javascript. La razón de esto es que la mayoría de información que encuentras principalmente son tutoriales que te explican lo basico del lenguaje y aunque puedes guiarte solamente por la documentación esta se siente poco introductoria para entender al completo lo que realmente es Typescript.

Para comenzar, Typescript es un superset que, entre otras cosas, permite añadir tipificación a Javascript.

En Javascript existen tipos primarios y los mas conocidos son **string**, **number** y **boolean** pero, como bien es conocido en Javascript, este tiene tipado dinámico lo cual le permite que una misma variable pueda cambiar el tipo de valor que almacena siendo esta una debilidad o una ventaja dependiendo del punto de vista que tengas.

Typescript en cambio nos permite asignarle un tipo de dato a la variable. 


### Tipos cotidianos en Typescript
Para representar los valores cotidianos de Javascript anteriormente mencionados se debe entender que tipos de datos pueden contener estos donde:

- Los string pueden contener palabras, cadenas, frases y caracteres.
- Los number pueden contener valores enteros y decimales.
- Los boleanos solo pueden contener valores true o false.

Para declarar una variable en typescript se hace de la siguiente forma:

![Typescript example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fuubfs2c14djjeo0zixh.png)

Como puedes notar realmente no hay una gran diferencia con Javascript porque lo único que debes hacer es especificar el tipo de valor que tendra justo despues de el nombre de la variable separando este con dos puntos(:).

Algo importante que debes saber al declarar una variable es que Typescript puede intuirlo por lo que no siempre necesitas especificar el tipo de dato que tendra cuando justo despues le especificas el valor. 

En este caso si le retiramos el tipo, Typescript puede intuir que se trata de un string porque justo despues le especificamos el valor que tendra.

Aquí tienes unos ejemplos de como se declara un valor boolean y un number.


![Typescript number example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgl8conz67yi8nou75ov.png)


![Typescript boolean example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sz3x1k017al5o9y3c2a7.png)

### Arreglos en Typescript
Los arreglos tienen un poco de diferencia con respecto a como se definen principalmente porque en su declaración debes especificar el tipo de dato que contendrán.

Para crear un arreglo puedes hacerlo de las siguientes maneras:


![Typescript arrays examples](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qt1qradbl2r9qxzjl8f0.png)

En la primera especificamos con number[] que es un arreglo de números. En la segundo especificamos que es un arreglo y el tipo entre el mayor y menor que(<number>) y el tipo que especificamos es el tipo de contenido que tendra el arreglo.

### Tipo any
Typescript contiene este tipo llamado **any** el cual especifica que el valor puede ser de cualquier tipo. Es funcional cuando requieres que typescript no cree problemas con una variable que debe tener tipado dinámico en particular y se puede usar igual que string, number o boolean pero recuerda que debes intentar usarlo lo menos posible.

### Funciones en Typescript
Cuando creas funciones hay dos puntos a tomar en cuenta que diferencian typescript: los parametros y el valor de retorno.

Para las funciones es mucho mas simple explicarlo con un ejemplo como el siguiente:


![Typescript function example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/47i3j0l0c5gy43b0qe0i.png)

En esta función se toman dos parámetros los cuales son name y lastName que se especifica que serán de tipo string y despues de declararlos y cerrar el paréntesis se coloca el tipo de retorno que tendra.

Al igual que con los tipos anteriores typescript puede intentar intuir cual sera el tipo de retorno por lo que no siempre se tiene que especificar.

Sin embargo, en una función anónima no intentes omitir los tipos de datos de los parámetros ni del retorno pues te devolverá un error ya que, en estas, la llamada "tipificación contextual" o mejor dicho el contexto de tipo en Typescript no sera suficiente para encontrar que tipo de valor tendrán.

### Objetos en Typescript
Otro tipo de dato muy utilizado son los objetos y para crear uno en Typescript simplemente se debe especificar los tipos de propiedades que contiene.

Las propiedades se pueden separar por coma o punto y coma y si no se especifica el tipo sera any por defecto.

Un buen ejemplo es un objeto de una persona que especifica su nombre completo, la edad y si es adulto o no como el siguiente:


![Typescript object example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pjzyzb36pcwosx84jxu3.png)

No se especifica que es de tipo objeto pero si se especifican las propiedades y el tipo de dato que contendran.

Por ahora esto es todo lo que he investigado sobre Typescript y comenzare contando todo lo que realice...

### Hoy
- Comencé a practicar para entrevistas.
- Practique Touch Typing para mejorar mi velocidad de escritura.
- Comencé a aprender mas sobre Typescript y cree algunos ejemplos con ayuda de [este blog](https://www.rapid7.com/blog/post/2016/02/19/typescript-language-primer/) y la [documentacion de typescript](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html).

Realmente me siento motivado aprendiendo typescript y creo que comenzare a usarlo en algún proyecto para avanzar con el aprendizaje al practicarlo.

Espero que este blog te ayude un poco con typescript y recuerda que esto no es una guia.

Mucho éxito con tus proyectos y animo!

¡Hasta la vista! B)