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.
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