Hace unos meses publiqué Solo Eres un Verdadero Desarrollador JavaScript Si….
Era un post escrito por pura diversión, y honestamente no esperaba que resonara con tantos developers 😅. Pero a juzgar por los comentarios, todos hemos pasado por el mismo caos: bugs misteriosos, desastres aleatorios de npm, debugging con console.log, y código que funciona sin que nadie sepa por qué.
Hace poco me topé con You’re a Real Software Developer Only If… de @sylwia-lask, y me encantó. No solo porque era gracioso, sino porque me recordó una de mis cosas favoritas de la comunidad developer: todos tenemos stacks distintos, trabajos distintos, niveles de experiencia distintos… y sin embargo coleccionamos exactamente las mismas historias 😄.
“Después de JavaScript y después de la edición de Software Developer de Sylwia, era justo continuar la tradición con el lenguaje que pasa la mitad de su tiempo protegiéndonos de nosotros mismos: TypeScript.”
🔷 El primer choque de realidad con TypeScript
Convertiste un proyecto de JavaScript a TypeScript y pensaste: “Esto debería tomar una hora.” Tres días después seguías arreglando errores de tipo.
Agregaste any solo para que el error desapareciera, prometiéndote que volverías después. Nunca volviste.
Arreglaste un error de TypeScript y desbloqueaste doce nuevos, como si fuera un sistema de logros.
Te quedaste mirando un error de tipo durante 20 minutos pensando: “Yo sé lo que quiero decir. ¿Por qué TypeScript no sabe lo que quiero decir?”
Escribiste as any y sentiste un poco de vergüenza.
🤝🏻 La relación amor-odio
Te quejaste de TypeScript todo el día… y luego te sentiste completamente perdido al trabajar en JavaScript puro.
Quitaste una anotación de tipo para “simplificar las cosas”. TypeScript no estuvo de acuerdo.
Pasaste más tiempo diseñando tipos que escribiendo lógica de negocio.
“Miraste un tipo genérico y pensaste ‘¿quién escribió esta obra maestra?’ para luego descubrir que fuiste tú hace seis meses. También miraste otro genérico pensando ‘¿quién escribió esta pesadilla?’ — también tú.”
Tipeaste algo como string | number | null | undefined porque la vida es complicada.
🧠 Momentos de desarrollador avanzado
Abriste un archivo, encontraste type Result<T extends Something<U, V, W>> = ... e inmediatamente cerraste el archivo.
Peleaste una hora contra TypeScript solo para darte cuenta de que tenía razón todo el tiempo.
Celebraste cuando el IDE finalmente dejó de mostrar líneas rojas onduladas.
Cambiaste el nombre de una propiedad en un solo lugar y viste a TypeScript salvarte de romper veinte archivos. Por un breve momento sentiste gratitud genuina.
Activaste el modo estricto en un proyecto y descubriste cosas que hubieras preferido no descubrir.
Usaste tanto el autocompletado que escribir nombres de propiedad completos ahora se siente raro.
🚨 Las soluciones de emergencia
Escribiste // @ts-ignore y esperaste que nadie se diera cuenta.
Escribiste un tipo tan complicado que tu yo del futuro necesitó documentación para entenderlo.
Pusiste un error de TypeScript en Google y la respuesta contenía aún más TypeScript que el error original.
“Dijiste ‘los tipos están correctos, el código está mal’ y también ‘el código está correcto, los tipos están mal’ durante la misma sesión de debugging.”
Arreglaste un bug… justo antes de darte cuenta de que TypeScript te lo había advertido hace dos días.
🎯 Entonces, ¿eres oficialmente un developer TypeScript?
Si leíste esta lista y te descubriste asintiendo cada pocas líneas…
¡Felicidades! 🥳 Eres oficialmente un desarrollador TypeScript.
Probablemente has agregado any cuando nadie miraba, discutido con un tipo que resultó tener razón, pasado más tiempo arreglando tipos que escribiendo features, y celebrado cuando las líneas rojas finalmente desaparecieron.
Y a pesar de todas las quejas, secretamente amas TypeScript. Porque después de suficientes proyectos te das cuenta: TypeScript no está tratando de arruinarte el día. Está tratando de evitar que tu yo del futuro lo arruine 😄.
💬 Tu turno
¿Qué es lo más “developer TypeScript” que has hecho?
Mi voto va para: pasar 30 minutos creando un tipo hermoso para un objeto que tenía exactamente dos propiedades 😅.
Traducido y adaptado para la comunidad LATAM por DojoFullStack. Artículo original de Hadil Ben Abdallah.