Lo que debes saber antes de iniciar con TypeScript

¿Qué es TypeScript?

TypeScript (TS) es un lenguaje de programación construido a un nivel superior de JavaScript (JS). Esto quiere decir que TypeScript dota al lenguaje de varias características adicionales que hacen que podamos escribir código con menos errores, más sencillo, coherente y fácil de probar, en definitiva, más limpio y sólido.

Fue creado por Microsoft en 2012 y, desde entonces, su adopción no ha hecho más que crecer. Especialmente, desde que Google decidió adoptarlo como lenguaje por defecto para desarrollar con Angular. Aunque, hoy en día, podemos desarrollar con TypeScript en cualquiera de los frameworks o librerías más punteras, como son React para el frontend o Node para el backend.

Diferencias entre TypeScript y JavaScript

En la primera ejemplo podemos ver un fichero .js con la declaración e inicialización de una variable. La variable se inicializa con un número, pero podemos observar que más adelante su valor se reemplaza con una cadena de caracteres y no pasa absolutamente nada.

   
                    let variable = 5;
                    variable = 'Profile Software Services';
                    

El segundo ejemplo se trata de un fichero .ts, donde hacemos lo mismo que en el fichero JavaScript. La diferencia es que aquí te marca el error, ya que hemos declarado una variable tipo number y le hemos cambiado el valor por un string. Así, a la hora de compilar el código, también se marcará el error y no estará todo en orden hasta que lo arregles.

   
                    //Tipado estático
                    let otraVariable: number;
                    otraVariable = 5;
                    otraVariable = 'Profile Software Service';

                    //Tipado dinámico
                    otraVariable2 = any;
                    otraVariable2 = "Profile Software Service";
                    

Comparación entre JavaScript y TypeScript

Javascript Typescript
Lenguaje de scripting orientado a objetos Lenguaje de scripting orientado a objetos
Puede ser interpretado y ejecutado Compila a Javascript
Lenguaje interpretado, ejecutado directamente en un navegador Lenguaje interpretado, ejecutado directamente en un navegador
Dinamicamente tipado Puede ser estáticamente tipado
Más flexible Mejor estructurado
Bueno para proyectos pequeños y simples Ideal para proyectos complejos

Typecript proporciona mecanografía, clases e interfaz estáticas opcionales. Para un gran proyecto de JavaScript, la adopción de TypeScript puede brindarle un software más sólido y fácil de implementar con una aplicación de JavaScript normal.

Ventajas de usar este lenguaje de programación

  • Escalabilidad del código en un “Interface oriented development”
  • Te ayuda con equipos en crecimiento
  • Herramientas y comunidad, como por ejemplo la comunidad que empezó Microsoft.
  • ES-next compliance
  • Types ha demostrado promover la cualidad del código y entendibilidad. Equipos grandes como (Google, Microsoft, Facebook) también han descubierto el valor que aporta Typescript.
  • Incrementa tu agilidad en el refactoring del código. Es mejor que el compilador encuentre errores que cometerlos en el “runtime”.
  • Types es uno de los mejores métodos de documentación que hay en este momento. La función signature es un teorema y la función body es la prueba.
  • Te da una muestra del futuro de JavaScript, con elementos tipados.
  • Las inyecciones de dependencias dan mucha oportunidad para realizar testing y API´s basadas en controlador. Esto combinado con librerías de auto inyección, hace que el código sea mucho mejor mantenible y predecible. Además está tipado, si alguna vez decides cambiar tu servicio logger, puedes hacerlo de una manera muy sencilla con tipos e interfaces. Si hay algo inesperado, tu código simplemente no compilará.
  • Testeabilidad. Con la inyección de Dependencias, el testeo se convierte en tarea fácil. Puedes mockear los servicios de testeo con las mismas interfaces que los reales. Tu código no los distinguirá y podrás conseguir una cobertura completa en tu entorno.
  • Te ayuda a implementar patrones de diseño SOLID a un lenguaje que no lo soporte.
  • Promueve la innovación y el cambio. Con medidas que aseguren que no se vaya en la dirección equivocada.
  • Hace que el código se entienda mejor. El desarrollador reconoce más rápidamente la función de cada código.
  • Habilidad de compilar hacia una versión de Javascript que funciona en todos los browsers.
  • Una de las mejores ventajas de Typescript es la finalización del código y IntelliSense. Te ayuda a completar tu código a medida que está escrito.
  • Código limpio. La escritura Estática es una característica que detecta errores de les desarrolladores. Promueve que se escriba un lenguaje más robusto y fácil de mantener. Por lo que es un lenguaje más limpio.
  • Puedes escribir fácilmente código orientado a objetos sin mucho conocimiento.
  • El refactoring con las herramientas de Typescript es mucho más fácil y rápido.

¿Utilizar TS o JS?

Si profundizamos más en TypeScript y JavaScript, obtenemos una comparativa más exhaustiva de ambos:

  • Tipado estático, genérico, estructural y enumerados: en JS no existen como tal los tipados, aunque los enumerados se pueden simular con clases sencillas. Mientras que TS es un lenguaje fuertemente tipado, donde se pueden crear tipos genéricos o interfaces.
  • Modularización: TS ofrece un soporte directo para módulos, mientras que JS lo hace a través de ECMAScript 6.
  • Tuplas: JS no las soporta, pero si TS.
  • Orientación a objetos: la sintaxis de TS para la programación orientada a objetos es muy similar a la de otros lenguajes como Java o C#. Y además añade clases abstractas y modificadores de acceso, entre otras características. En JS también se puede programar orientado a objetos, pero es algo más complejo.
  • Decoradores: JS no tiene soporte para decoradores, mientras que TS si.
  • Interfaces: Como hemos mencionado, en TS las interfaces son imprescindibles, brindándote la posibilidad de crear escenarios más avanzados. En JS no existe soporte para interfaces.

Con esta comparativa podemos observar que TypeScript es un lenguaje muchísimo más maduro que JavaScript . Y, aunque sea más difícil de aprender, la curva de aprendizaje tampoco es muy complicada en relación a los beneficios que te va a aportar como desarrollador para el futuro.

En proyectos pequeños, usar TypeScript es un poco brusco, por lo que quizá no merezca la pena. Ahora bien, en proyectos medianos o grandes, y sobre todo en un equipo de desarrollo, escribir código en TS ofrece grandes ventajas que se van a notar a corto y a largo plazo.

Si trabajas con frameworks, usar TypeScript es casi una obligación. Angular, como hemos dicho antes, está escrito en este lenguaje y, por tanto, su documentación. Si a esto le sumamos que en todas las empresas de desarrollo software los principales proyectos utilizan alguno de estos frameworks o librerías, blanco y en botella.

Empieza Ahora

Typescript se está convirtiendo en una opción fácil para las compañías que quieran desarrollar proyectos con mucho código. La estructura de los lenguajes de programación orientada a objetos mantiene un código limpio, escalable, consistente y fácil de debuggear.

A continuación se presenta diferentes fuentes de información que le serán utiles para reforzar sus conocimientos

¿Qué es Typescript y porqué aprenderlo? por Fazt

Curso Práctico desde Cero por Ricardo Morales

Tutorial de TypeScript por iSolution

clic aquí

¡Pon a prueba los conocimientos adquiridos!

Resuelve el siguiente Cuestionario

Autores: Grupo 07 de TPI115 - UES