Primeramente decir, que TypeScript es un lenguaje de programación libre y de código abierto desarrollado y mantenido por Microsoft. Es un superconjunto de JavaScript, que esencialmente añade tipado estático y objetos basados en clases.

En esta ocasión nos ocuparemos del tipado de datos, esencial en el conocimiento del citado lenguaje de programación. Para poder visualizar el producto del transpile que se realiza de TypeScript a Javascript podemos utilizar la herramienta que nos proporciona la web oficial de TypeScript en la pestaña “Playground” (https://www.typescriptlang.org/play/index.html).

Algunos tipos de datos y su declaración

A continuación podemos ver cómo se declaran tipos de datos numéricos, de cadena o Booleanos entre otros.

Como se puede observar cada uno de los tipos de datos declarados hacen referencia a los citados anteriormente y el último “any”, indica que dicha variable puede ser de cualquier tipo. Esto último comentado nos da algo de luz sobre lo que pasa con los otros tipos de datos declarados sobre variables. Es decir, si asignamos un valor que no sea numérico sobre la variable “número” el resultado será un error de compilación y de la misma manera para los otros tipos.

 

La asignación de valores a variables sin definir implican un contrato

Otra peculiaridad de TypeScript y la definición de tipos de datos, es que si a una variable no tipada le asignamos un valor, por ejemplo numérico, si luego le volvemos a asignar un valor de otro tipo, por ejemplo una cadena, habremos cometido un error que se verá reflejado en el compilador.

Otra peculiaridad de TypeScript es que si a una variable no definida se le asigna “undefined” dicha variable es considerada de tipo any y es posible asignarle cualquier valor. Al contrario que asignar a una variable “null”, por ejemplo.

 

Tipos de datos para el retorno de funciones

Si declaramos un tipo de dato para el retorno de una función, dicha función deberá retornar un tipo de dato igual al declarado, en caso contrario el compilador dará un error.

En el ejemplo siguiente, la función debería haber sido declarado como “string”, ya que se devuelve una cadena: