Cómo aprendí TypeScript

Sobre mí

Soy Tyler Church, un desarrollador web de pila completa.

Por qué quería aprender TypeScript

Quería aprender TypeScript porque cada día tenía más y más miedo de nuestro código base de JavaScript. No podía refactorizar una cosa sin romper otras cosas en lugares lejanos. Las herramientas de refactorización de nuestro IDE fueron útiles, pero tuve que verificar constantemente los resultados dos y tres veces para asegurarme de que no sucediera nada incompleto.

Revisar el código antiguo era como un juego absurdo de “adivinar la firma de la función”, ya que muchas funciones se habían escrito “de manera útil” para cambiar el comportamiento en función del tipo y la cantidad de argumentos pasados. La mayoría de las estructuras de datos y los flujos de datos no estaban documentados para arrancar, por lo que tenía que leer el código fuente de cada función para tener una idea general de cómo funcionaban las cosas.

Cómo abordé el aprendizaje de TypeScript

Mi enfoque fue bastante simple. Primero jugué con la demostración en el sitio web y luego construí algunos scripts de Node.js realmente pequeños en mi tiempo de inactividad personal.

Nada lujoso, solo versiones cada vez más complejas de “¡Hola, mundo!” hasta que comencé a comprender los entresijos de TypeScript y cómo funcionaba.

Después de eso, lo usaba en pequeños proyectos y, finalmente, comencé a integrarlo en partes del backend de una de nuestras aplicaciones en el trabajo. Rápidamente vi retornos de mi inversión ya que las secciones de TypeScript del backend se convirtieron rápidamente en las más fáciles de mantener y comprender.

Desafíos que enfrenté

Me tomó un tiempo entender todo el tema de los módulos frente a los espacios de nombres. La versión corta es: simplemente trate cada archivo como un módulo (estilo Node.js) y no se preocupe por los espacios de nombres. Casi nunca los necesitas.

Los diferentes tipos de importaciones (requiere vs. amd, etc.) que TypeScript puede emitir a través de la opción “módulo” también me hicieron tropezar, y todavía lo hace de vez en cuando. Puede volverse especialmente desagradable si necesita compartir código entre el back-end y el front-end. Mi recomendación es elegir commonjs (el estilo de Node.js) o ES2015 (el nuevo estándar) y usar herramientas como Babel y Webpack (u otras) para traducir las importaciones al estilo compatible con el entorno en el que se debe ejecutar el código.

Otro desafío al que me enfrenté fue solo la sobrecarga de escribir los tipos en sí. Al principio me pareció un poco difícil, pero ahora cada tipo que escribo se siente como un seguro y una documentación para mi futuro yo. Evite “cualquiera” lo mejor que pueda, y creo que verá la luz rápidamente.

Uno de los mayores desafíos fue lograr la adopción en el trabajo. Hubo resistencia para incorporar una nueva herramienta y agregar un paso de compilación a nuestro proceso. No estoy seguro de haberlo obtenido si no hubiera sido por Angular 2+ que lo impuso a la comunidad Angular. Mi jefe quería actualizar de AngularJS al nuevo Angular 2, y la ruta de JS puro solo era “compatible” en teoría. TypeScript era el único camino bien documentado.

Sin embargo, una vez que comenzamos con Angular 2, los beneficios de TypeScript quedaron claros para todo el equipo y rápidamente se convirtió en el estándar en todas partes.

Conclusiones clave

La conclusión clave para mí es que TypeScript vale totalmente la pena. La diferencia entre las bases de código de TypeScript y las bases de código de JavaScript es como el día y la noche. Puedo orientarme, editar código y refactorizar mucho más rápido y con más confianza que antes. Y hace que trabajar juntos como parte de un equipo sea mucho más fácil.

Sugerencias y consejos

Para cualquier otra persona que busque comenzar con TypeScript, mi recomendación es que primero lo use para un pequeño proyecto personal. Obtenga una idea de ello. Y luego, una vez que esté seguro, use TypeScript en 1 lugar aislado de una aplicación existente. Creo que notará rápidamente los beneficios y pronto estará deseando convertir todo el proyecto 😃

Reflexiones finales y próximos pasos

En general, creo que este ha sido un gran viaje y me encantaría poder enseñar a más personas sobre TypeScript y lograr que más personas puedan usarlo. Creo que la comunidad de JavaScript será un lugar mucho mejor con más código TypeScript.

Similar Posts

Leave a Reply

Your email address will not be published.