¿Deberías usar TypeScript para crear aplicaciones web?

Redes sociales

TypeScript es un lenguaje de programación relativamente nuevo, pero que ya se ha ganado muchas adhesiones. Sigue leyendo y descubrirás por qué deberías usar TypeScript para crear aplicaciones web.

Definición de TypeScript

TypeScript es un lenguaje de programación orientado a objetos desarrollado y mantenido por Microsoft Corporation. Es un superconjunto de JavaScript y contiene todos sus elementos.

TypeScript sigue totalmente el concepto OOPS (Programación orientada a objetos) y con la ayuda del TSC ( compilador de TypeScript), puedes convertir el código de TypeScript (archivo .ts) a JavaScript (archivo .js).

Lenguaje de programación TypeScript

Una breve historia de TypeScript

En 2010, Anders Hejlsberg (el creador de TypeScript) comenzó a trabajar en TypeScript en Microsoft, y en 2012 se lanzó al público la primera versión de TypeScript (TypeScript 0.8). Aunque el lanzamiento de TypeScript fue elogiado por muchas personas en todo el mundo, debido a la falta de soporte de los IDE principales, la comunidad de JavaScript no lo adoptó en gran medida.

La última versión de Typecript, en el momento de escribir este artículo, Typecript 3.7, se lanzó al público en noviembre de 2019. Puedes descargar la última versión desde aquí.

¿Por qué deberías usar TypeScript?

Deberías utilizar TypeScript para crear aplicaciones web ya que:

  • Simplifica el código JavaScript, lo que facilita su lectura y depuración.
  • Es de código abierto.
  • Proporciona herramientas de desarrollo altamente productivas, como la comprobación estática.
  • Hace que el código sea más fácil de leer y comprender.
  • Mejora sensiblemente el JavaScript estándar.
  • Nos brinda todos los beneficios de ES6 (ECMAScript 6), para una mayor productividad.
  • Puede ayudarnos a evitar errores dolorosos con los que los desarrolladores suelen encontrarse al escribir en JavaScript ya que verifica el código.
  • Potente sistema de tipos, incluidos los genéricos.
  • No es más que JavaScript con algunas características adicionales.
  • Estructural, más que nominal.
  • El código TypeScript se puede compilar según los estándares ES5 y ES6 lo que lo hace compatible con los navegadores más recientes.
  • Soporta tipeo estático.
  • Ahorra tiempo a los desarrolladores.

Características adicionales de TypeScript

  • Dispone de parámetros opcionales.
  • Utiliza funciones con parámetros REST.
  • Soporte para genéricos.
  • Soporte para módulos.

Principales características de TypeScript que quizás no conozcas

Programación orientada a objetos

TypeScript incluye un muy buen conjunto de características de Programación Orientada a Objetos (OOP), que son esenciales para mantener un código robusto y limpio; lo que mejora su calidad y facilita su mantenimiento. Estas características de OOP hacen que el código TypeScript sea muy claro y organizado.

Ejemplo:

class CustomerModel
{
    customerId:  number;
    companyName: string;
    contactName: string;
    country: string;
}
class CustomerOperation{
    addCustomer(customerData: CustomerModel) : number {
    //añadir customer
    let customerId =5;// Id devuelto después de añadir
     return customerId;
}
}

Interfaces, genéricos, herencia y modificadores de acceso a métodos

TypeScript admite interfaces, genéricos, herencia y modificadores de acceso a métodos. Las interfaces son una buena forma de que los objetos no relacionados se comuniquen entre sí. Los genéricos ayudan a proporcionar una verificación en tiempo de compilación. La herencia permite que nuevos objetos adquieran las propiedades de los objetos existentes. Y los modificadores de acceso controlan la accesibilidad de los miembros de una clase. TypeScript tiene dos modificadores de acceso: público y privado. De forma predeterminada, los miembros son públicos, pero puedes agregarles explícitamente un modificador público o privado.

Interface:

interface ITax {
    taxpayerId: string;
    calculateTax(): number;
    }
class IncomeTax implements ITax {
    taxpayerId: string;
    calculateTax(): number {
    return 10000;
    }
}
class ServiceTax implements ITax {
    taxpayerId: string;
    calculateTax(): number {
    return 2000;
    }
}

Modificadores de acceso y propiedades:

class Customers{
    public companyname:string;
    private country:string;
}
//se muestra una variable pública y una privada.

Herencia:

class Employee{
    Firstname:string;
    }
class Company extends Employee {
    Department:string;
    Role:string
    private AddEmployee(){
    this.Department="myDept";
    this.Role="Manager";
    this.FirstName="Test";
    // programar la operación
    }

Genéricos:

function identity<T> (arg: T): T {
    return arg; 
    }
    //ejemplo mostrando implementación de genéricos
    let output = identity <string>("myString");
    let outputl = identity <number> (23);

Tipado fuerte

TypeScript no permite violaciones de los tipos de datos, es decir, asignado el valor de una variable a un tipo concreto, no se puede usar como si fuera de otro tipo distinto a menos que se haga una conversión. Cuando se violan tales restricciones, TypeScript genera errores. Por lo tanto, debes definir tipos al declarar variables y no puedes asignarles otros valores distintos del tipo definido, a diferencia de JavaScript donde si es posible.

Ejemplo:

let testnumber:  number = 6;
testnumber = "myNumber"; // Esto generará un error
testnumber = 5; // Esto es correcto

Comprobación de errores en tiempo de compilación

Si no sigues la sintaxis y la semántica adecuadas, el compilador te arrojará los errores en tiempo de compilación. TypeScript no permitirá que tu programa ejecute una sola línea hasta que elimines todos los errores de sintaxis o hasta que depures los errores en tiempo de compilación.

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Funciones/Arrow_functions

Menos código en comparación con JavaScript

TypeScript es un contenedor de JavaScript, por lo que hay disponibles clases auxiliares que reducen el código. El código resultante, por consiguiente, es más fácil de entender.

Legibilidad

Las interfaces, clases, etc. proporcionan legibilidad al código. Como el código está escrito en clases e interfaces, es significativamente más fácil de leer y comprender.

Compatibilidad

TypeScript es compatible con las bibliotecas de JavaScript como underscore.js, Lodash, etc. Tienen muchas funciones integradas y fáciles de usar que hacen que el desarrollo sea más rápido.

Compilador que convierte código TypeScript a código JavaScript

El código de TypeScript está formado por código JavaScript simple, más ciertas palabras clave y construcciones específicas. Sin embargo, cuando compilas el código TypeScript, se convierte en JavaScript sin formato. Eso significa que el JavaScript resultante lo puedes usar con cualquier navegador que admita JavaScript.

Soporta módulos

A medida que tu código TypeScript crece, se vuelve importante organizarlo en clases e interfaces para una mejor mantenibilidad. Los módulos TypeScript te permiten hacer exactamente eso. Un módulo es un contenedor para tu código que te ayuda a organizarlo de una manera ordenada. Conceptualmente, son similares a los espacios de nombres .NET.

Soporte de funciones ES6

TypeScript es un superconjunto de ES6, por lo que todas las características de ES6 están en él, además de algunas características adicionales como que la admisión de la función de flecha.

Utilizado en frameworks populares

TypeScript se ha vuelto cada vez más popular en los últimos años. Tal vez el momento decisivo de la popularidad de TypeScript fue el momento en que Angular 2 cambió oficialmente de JS a TypeScript.

Reduce errores

Reduce errores como valores nulos, indefinidos, etc. Las características fuertemente tipadas, de las que ya hemos hablado, restringen a los desarrolladores a escribir código con las verificaciones adecuadas.

Sobrecarga de funciones

TypeScript le permite definir funciones sobrecargadas. De esta forma, puede invocar diferentes implementaciones de una función según un parámetro. Sin embargo, recuerda que la sobrecarga de una función TypeScript es un poco extraña y requiere verificación de tipo durante la implementación. Esta limitación se debe al hecho de que el código TypeScript finalmente se compila en JavaScript simple y JavaScript no admite el concepto de sobrecarga de funciones en su verdadero sentido.

Constructores

Las clases que definas en TypeScript pueden tener un constructor. El constructor generalmente hace el trabajo de inicializar el objeto estableciendo valores predeterminados en sus propiedades. El constructor también se puede sobrecargar como una función.

Depuración

Es fácil depurar el código escrito con TypeScript.

TypeScript es solo JavaScript

Deberías usar TypeScript para crear aplicaciones web ya que comienza con JavaScript y termina con JavaScript, adoptando los bloques de construcción básicos del programa desde JavaScript. Todo el código TypeScript se convierte en su equivalente de JavaScript para su ejecución.

Portable

TypeScript es portable a los navegadores, dispositivos y sistemas operativos. Podrás ejecutarlo en cualquier entorno en el que se ejecuta JavaScript. A diferencia de sus contrapartidas, TypeScript no necesita una máquina virtual dedicada o un entorno en tiempo de ejecución específico para ejecutarse.

¿Te parece que deberías usar TypeScript para crear aplicaciones web? ¿Lo utilizas? ¿Quieres que escribamos más artículos sobre este lenguaje de programación?

Redes sociales

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.