Mi trabajo diario es desarrollador de clientes con AngularJS. Estamos evaluando si queremos usar TypeScript. Investigué un poco sobre el 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?
angularjs
typescript
ecmascript-6
cjskywalker
fuente
fuente
declare var MyNewLibraryName: any;
luego usarla como desee sin que el compilador se queje.Respuestas:
He estado usando 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 definitiva 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. Por supuesto, puede escribir su código en ES6 y usar un transpilador para llevarlo a ES5, 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 se sienten cómodos aprendiendo. Personalmente, creo que tanto TS como ES6 tendrán un buen soporte y un futuro largo, pero 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.
fuente
Árbol de decisión entre ES5, ES6 y TypeScript
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).
Mecanografiado 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.
fuente