español es6 entre ecmascript differences diferencias diferencia cual and angularjs typescript ecmascript-6

angularjs - es6 - typescript vs javascript diferencias



¿Debo usar el mecanografiado? o simplemente puedo usar ES6? (2)

Árbol de decisión entre ES5, ES6 y TypeScript

¿Te importa tener un paso de compilación?

  • Sí, use ES5
  • No, sigue adelante

¿Quieres usar tipos?

  • Sí, use TypeScript
  • No: use ES6

Más detalles

ES5 es el JavaScript que conoce y usa en el navegador hoy en día, es lo que es y no requiere un paso de compilación para transformarlo en algo que se ejecute en los navegadores actuales

ES6 (también llamado ES2015 ) es la próxima iteración de JavaScript, pero no se ejecuta en los navegadores actuales. Hay bastantes transpiladores que exportarán ES5 para ejecutarse en navegadores. Sigue siendo un lenguaje dinámico (léase: sin tipo).

TypeScript proporciona un sistema de escritura opcional al tiempo que incorpora funciones de futuras versiones de JavaScript (ES6 y ES7).

Nota: muchos de los transpiladores disponibles (es decir, babel, TypeScript) le permitirán usar características de futuras versiones de JavaScript hoy y exportar código que aún se ejecutará en los navegadores actuales.

Mi trabajo diario es desarrollador de clientes con AngularJS. Estamos evaluando si queremos usar TypeScript. Investigué un poco sobre mecanografiado y casi todos los paquetes de JavaScript que necesito deben tener archivos de tipo de definición. Descubrí que no es muy conveniente, especialmente si me gustaría probar algo nuevo y no tienen la definición para ello. Es realmente frustrante. (Incluso la definición actual de jQuery me da algunos problemas si quiero usar typecript 1.5 beta). Empecé a mirar ES6 y se parece a TypeScript. ¿Debo usar ES6 en su lugar? Además, escuché que angular 2 tendrá soporte completo para TypeScript, ¿será esa una razón por la que debería permanecer con él?


He estado utilizando Typecript en mi proyecto angular actual durante aproximadamente un año y medio, y aunque hay algunos problemas con las definiciones de vez en cuando, el proyecto DefinitelyTyped hace un trabajo increíble para mantenerse al día con las últimas versiones de las bibliotecas más populares.

Una vez dicho esto, hay una curva de aprendizaje definida cuando se pasa de JavaScript vainilla a TS y debe tener en cuenta la capacidad de usted y su equipo para hacer esa transición. Además, si va a usar angular 1.x, la mayoría de los ejemplos que encontrará en línea requerirán que los traduzca de JS a TS y, en general, no hay muchos recursos sobre el uso de TS y angular 1.x juntos en este momento .

Si planea usar angular 2, hay muchos ejemplos que usan TS y creo que el equipo continuará proporcionando la mayor parte de la documentación en TS, pero ciertamente no tiene que usar TS para usar angular 2.

ES6 tiene algunas características agradables y personalmente planeo familiarizarme más con él, pero en este momento no lo consideraría un lenguaje listo para producción. Principalmente debido a la falta de soporte de los navegadores actuales. Vea this respuesta SO para más detalles. Por supuesto, puede escribir su código en ES6 y usar un transpilador para llevarlo a ES5, lo que parece ser lo más popular en este momento.

En general, creo que la respuesta se reduciría a lo que usted y su equipo estén cómodos aprendiendo. Personalmente, creo que tanto TS como ES6 tendrán un buen soporte y un futuro a largo plazo, aunque prefiero TS porque tienden a obtener características de lenguaje más rápido y en este momento el soporte de herramientas (en mi opinión) es un poco mejor.