Búsqueda de sitios web

ecmascript 6 - Relación entre TypeScript y ES6


Todos :

Soy bastante nuevo en Typescript y ES6, lo primero que me confunde es su relación, según MSDN:

TypeScript 1.5 agrega una serie de nuevas características de ES6 incluyendo módulos, destructuración, spread, for..of, símbolos, propiedades computadas, let/const y plantillas de cadenas etiquetadas.

Mi confusión es (sé que hay muchos publicaciones que dicen que TypeScript es el superconjunto de JS):

¿Significa esto que TypeScript solo usa su propia forma (una sintaxis un poco diferente y transpila) para rehacer lo que ya existe en ES6 nuevamente (solo con fines de tipos)?

y

¿Significa que ES6 básicamente puede hacer todo lo que TypeScript puede hacer? ¿Y viceversa?

Respuesta #1

TypeScript es un código de script que se transpila a JavaScript, ya sea a ES5 o ES6 (y también a ES3).

TypeScript 1.5 agrega una serie de nuevas características de ES6 que incluyen módulos, destructuración, spread, for..of, símbolos, propiedades computadas, let/const y plantillas de cadenas etiquetadas.

Esto significa que puedes usar módulos, for..of y otras características en tu código TypeScript y el compilador de TypeScript transpila tu código a código compatible con ESx que hace lo mismo. Tomemos for..of como ejemplo:

Código TypeScript:

for (let t of [1,2,3]) {
    console.log(t)
} 

se transpila a ES5 así:

for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) {
    var t = _a[_i];
    console.log(t);
}

Sin embargo, si apuntas a ES6, entonces la transpilación es simplemente:

for (let t of [1,2,3]) {
    console.log(t);
}

Lo mismo ocurre con los módulos, spread, etc. En cada caso, TypeScript genera código que se comporta igual en ES5, ES6 y ES6 (es simplificado porque no siempre es posible).

No hay diferencia en la expresividad de TypeScript y ES6. La diferencia es que el compilador de TypeScript te ayuda con el análisis estático de tu código. De lo contrario, lo que sea que puedas programar en ES6, puedes programarlo en TypeScript y viceversa.

Respuesta #2

Typescript es un compilador que crea ecmascript. El código fuente de Typescript es código que tiene soporte para tipos, interfaces, super/subclases y lo que sea que conozcas de otros lenguajes de programación. Como se mencionó, el resultado es ecmascript, que se ejecuta en cualquier navegador.

Artículos relacionados