Avatar ·

unknown vs any: cuál es la diferencia y cuándo usar cada uno en TypeScript

¡Hola! Recientemente empecé a aprender TypeScript y me encontré con los tipos `any` y `unknown`. Ambos parecen permitir almacenar cualquier cosa, pero no entiendo bien cuál es la diferencia entre ellos y cuándo usar cada uno. Aquí hay un ejemplo que me confunde. Tengo una función que recibe datos de una API y no sé exactamente qué llegará: ```typescript function processData(data: any) { console.log(data.toUpperCase()); // Funciona, pero si data no es un string, falla en runtime } ``` Si cambio `any` por `unknown`: ```typescript function processData(data: unknown) { console.log(data.toUpperCase()); // Error de compilación: Object is of type 'unknown' } ``` Resulta que con `unknown` el código ni siquiera se compila. Entonces, ¿para qué sirve `unknown` si solo estorba? He oído que `unknown` se considera más seguro, pero en la práctica no veo ventajas, solo problemas adicionales. También no entiendo cómo trabajar correctamente con `unknown`. Si recibo datos de una API, igual tendré que...