TypeScript es un lenguaje de programación basado en JavaScript que le agrega a este un tipado estatico. Suele llamarse un superset de JavaScript. Fue creado por Microsoft para brindarle mas seguridad a JavaScript. Una gran diferencia es que TypeScript se ejecuta en tiempo de compilacion y no de ejecución. En la ejecucion, TypeScript se convierte a JavaScript para que el navegador lo entienda.
¿A que me refiero con tipado estatico? Veamos este ejemplo
let nombre="Alejo"
nombre=1
let nombre="Alejo"
nombre=1 //Error: Type 'number' is not assignable to type 'string'
Como supo TypeScript que el valor nombre es un string? Porque lo infiere. Si declaro la variable y le asigno un valor determinado, TypeScript va a inferir que ese valor es del tipo que le asigné. Por lo tanto, respetará el tipo. Si queres, podes asignarle el tipo pero como buena practica se recomienda no asignar tipos a las cosas que TypeScript puede inferir. Si quisieras aclarar que tipo de dato es, podes hacerlo asi
let nombre:string="Alejo"
La inferencia también se da por consecuencia, por ejemplo
let a=1
let b=2
let c=a+b
Vos también podes agregarle mas de un tipo a una variable. Supongamos que tenes una variable que puede aceptar tanto numbers como strings, como un número de documento.
ATENTI
Siempre que trabajes con numeros de documento debería ser un string, ya que los datos de tipo number solo estan reservados a aquellos datos con los que vamos a hacer calculo
let dni: string | number
Inclusive si queres podes pasarle valores
let dni: string | 0