TypeScript es una superposición en JavaScript que añade funcionalidades y estructuras típicas de lenguajes de programación orientada a objetos como Java o C#. Entre estas funcionalidades, encontramos las flechas, las clases y los módulos, todas ellas características retroportadas que TypeScript toma de otros lenguajes y adapta en su propio sistema para mejorar la escritura y organización del código JavaScript.
El término "Retroportado" significa que estas características fueron tomadas de estándares o versiones más recientes de JavaScript (o incluso propuestas para futuras versiones) y se portaron "hacia atrás" para que pudieran ser usadas en TypeScript, aún cuando la versión de JavaScript en la que se corre el código no las soporte.
Las flechas o arrow functions son una forma más corta y sintáctica de expresar funciones en JavaScript y, por lo tanto, en TypeScript. Estas fueron introducidas en la versión ES6 de JavaScript y son especialmente útiles para funciones puras y callbacks de un solo uso.
let sumar = (a, b) => a + b;
Las clases en TypeScript permiten un mejor ordenamiento del código y una fácil implementación del paradigma orientado a objetos. El estándar ES6 de JavaScript también incluye clases, pero TypeScript amplía sus capacidades introduciendo conceptos como modificadores de acceso, interfaces y decoradores.
class Persona {
constructor(public nombre: string, public apellido: string) { }
}
Los módulos en TypeScript son una forma de dividir y organizar el código en bloques independientes que sólo exponen la funcionalidad necesaria. Esto permite un mejor encapsulamiento y reutilización del código. Los módulos son similares a los módulos de ES6 en JavaScript.
import { Persona } from './Persona';
let p = new Persona("Juan", "Pérez");
Finalmente, los métodos en TypeScript son simplemente una función asociada a una clase o un objeto. A diferencia de las flechas, las clases y los módulos, los métodos no son una característica retroportada de TypeScript ya que existen en JavaScript desde sus inicios.
class Persona {
saludar() {
console.log("¡Hola!");
}
}
En resumen, TypeScript amplia y mejora varias de las características de JavaScript para ofrecer un lenguaje de programación más coherente y potente, adecuado para proyectos a gran escala. Sin embargo, no todos los aspectos de TypeScript son retroportaciones. Algunos, como los métodos, han sido parte de JavaScript desde siempre.