Extensión imprescindible: Pretty TypeScript Errors
Cuando empiezas a trabajar en serio con TypeScript, llega un momento en el que los errores dejan de ser “un mensajito” y pasan a ser un conjuro en latín: largos, con tipos anidados y difíciles de leer. La buena noticia es que hay una extensión que te cambia la vida.
El problema: errores que dan auténtico miedo
Seguro que te ha pasado: pasas el ratón por encima del error y aparece una cadena enorme que no se entiende. El resultado es el clásico:
- No sabes qué tipo esperabas
- No sabes qué te falta
- No sabes dónde mirar primero
Y pierdes tiempo en “traducir” el error en vez de arreglarlo.
La solución: Pretty TypeScript Errors
La extensión se llama Pretty TypeScript Errors (en el marketplace aparece como Pretty TypeScript Errors de Yoav Bls).
Lo que hace es simple y brutal: reformatea y presenta el error de TypeScript de forma visual, resaltando lo importante y separando la información para que entiendas rápido qué está pasando.
Ojo: instala la buena. Hay extensiones con nombres parecidos, así que fíjate bien en que sea la de Yoav Bls (la que tiene millones de descargas) y no un clon random con pinta sospechosa.
Qué ganas con esto
Con la extensión activada, en vez de ver un ladrillo de texto, TypeScript te lo canta mucho más claro:
- “Este tipo no es asignable a este otro”
- “Falta la propiedad
birthDate” - “Esta property es la que rompe todo”
Pasas de “¿qué?” a “ah vale” en 2 segundos.
Mini repaso TypeScript: Index Signatures para objetos dinámicos
En el vídeo también se repasa un caso muy típico: cuando tienes un objeto cuyas claves no conoces de antemano (tipo diccionario). Por ejemplo, un diccionario con frutas, traducciones, etc.
Si no sabes si las claves serán "apple", "banana", "cherry" o cualquier otra, no puedes tiparlo con propiedades fijas. Aquí entra la index signature:
type Dictionary = {
[key: string]: string
}
Esto significa:
- Las claves son
string - Los valores son
string - Puedes añadir tantas claves como quieras sin romper el tipado
Ejemplo de uso:
const translations: Dictionary = {
hello: 'hola',
goodbye: 'adiós',
thanks: 'gracias',
}
Cuándo tiene sentido usarlo
- Objetos realmente dinámicos (diccionarios)
- Mapas de traducciones (por ejemplo
translations[locale]) - Cualquier estructura donde “las keys van cambiando”
Y recuerda: si sí conoces las claves, entonces mejor tiparlas explícitamente.
Resumen
- Pretty TypeScript Errors reformatea los errores para que los entiendas de un vistazo.
- Las index signatures (
[key: string]: tipo) sirven para objetos con claves dinámicas. - Úsalas solo cuando las claves sean realmente desconocidas — si las conoces, tipa explícitamente.