cover

Aclarando las confusiones: any vs unknown en TypeScript

author photo

Héctorbliss

@blissmo

Una de las confusiones más comunes en TypeScript es cuándo usar any y cuándo usar unknown. Ambos parecen hacer lo mismo: aceptar cualquier tipo de valor. Pero hay una diferencia crucial que puede salvarte de muchos bugs.

La diferencia en una oración

  • any: "No me importa el tipo, déjame hacer lo que quiera"
  • unknown: "No sé el tipo, pero voy a verificarlo antes de usarlo"

El problema con any

any es como desactivar TypeScript para esa variable:


🎬 ¿Te está gustando este contenido? Tenemos más tutoriales en video en nuestro canal de YouTube.


La solución: unknown

unknown te obliga a verificar el tipo antes de usarlo:

Casos de uso reales

Parsing de JSON

API responses

Type Guards personalizados

Para hacer el código más limpio, puedes crear type guards:

Cuándo usar cada uno

SituaciónUsa
Migrando código JS a TS rápidamenteany (temporalmente)
Datos de fuentes externas (APIs, JSON)unknown
Event handlers genéricosunknown
Tests o prototipos rápidosany (con cuidado)
Librerías que no tienen tiposany (o crea los tipos)
Funciones de utilidad genéricasunknown con type guards

Regla de oro

Usa unknown por defecto. Solo usa any cuando realmente necesites escapar del sistema de tipos temporalmente.

Bonus: never

Ya que estamos, never es el opuesto de any:

Conclusión

  • any es una salida de emergencia, úsala con moderación
  • unknown es seguro y te obliga a validar
  • Combina unknown con Zod o type guards para máxima seguridad

TypeScript está para ayudarte, no para estorbarte. Usa unknown y deja que el compilador trabaje a tu favor.

Abrazo. bliss.

meta cover

Aprende en 5 minutos qué es HTML y cuando utilizar cada una de sus etiquetas

Checa este otro Post

meta cover

3 razones de por qué deberías aprender a programar en 2023 y cambiar de carrera

Checa este otro Post

¡Nuevo curso!

Animaciones web con React + Motion 🧙🏻