Typescript es un lenguaje de programación construido encima de Javascript. Se suele decir que es un superset de Javascript porque añade algunas funcionalidades como sistema de tipado. Todo el código escrito a Typescript acaba siendo compilado a Javascript para que pueda funcionar en navegadores o en Node 🚧.
Es un proyecto open source, y mantenido por Microsoft, con cada vez más popularidad. Tiene una gran comunidad y soporte en todos los editores de texto y herramientas que usamos habitualmente.
Otra cosa que tienes que saber es que el código compilado no está minificado ni ofuscado, eso quiere decir que aunque sea código compilado a Javascript, el código se puede entender perfectamente. Si quieres minifador lo tienes que instalar aparte con otra librería o bundler como Vite o Rollup.
Ventajas de usar Typescript
- Detección prematura de errores al desarrollar. Si se usan bien los tipos puedes detectar bugs antes incluso de hacer commit y subirlo a producción
- Declaración de intenciones. Sabes perfectamente lo que necesita cada función y lo que devuelve, no te hace falta usar JSDoc.
- Autocompletado. Si usas la extensión de Typescript (o el LSP) en tu editor de textos o IDE, vas a tener autocompletado de lo que lleve tipado, haciendo la experiencia del desarrollador/a más cómoda.
Ruta de aprendizaje de Typescript
Lo primero que tienes que aprender de Typescript es son Los tipos básicos de Typescript, ya que solo con eso tienes bastante ganado. Echa un ojo al Arrays y Tuplas en Typescript para completar tu conocimiento de los tipos.
Luego puedes mirar la Integración de Typescript en cualquier proyecto o incluso la Configuración de Typescript para que lo configures y empieces a darle caña al tipado.
Sabiendo lo anterior puedes aprender el Tipado de Objetos en Typescript, el Tipado de funciones en Typescript, los Type alias en Typescript y las Interfaces en Typescript Con todo esto ya tienes una buena base en Typescript.
Si quieres continuar aprendiendo te recomiendo echar un ojo a la Unión e intersección de tipos en Typescript y al Tipado de clases en Typescript que son conceptos un pelín más avanzados, aunque no son complicados.
Por último está el tema de Los genéricos en Typescript, algo que personalmente me costó entender al principio.