Estás manejando datos de tipo incierto y quieres evitar errores de tipo en TypeScript que pueden causar problemas al compilar.

El truco

Antes (mal):

function processData(data: any) {
  console.log(data.trim()); // runtime error si data no es string
}

processData("Hello, World!");
processData(42); // no se queja hasta que crashea en runtime

Después (bien):

function processData(data: unknown) {
  if (typeof data === "string") {
    console.log(data.trim());
  } else {
    console.log("El dato proporcionado no es una cadena");
  }
}

processData("Hola, Mundo!");
processData(42); // ahora está bien controlado

El uso de unknown en lugar de any obliga a verificar el tipo antes de operar con la variable. Esto te permite asegurarte de que no estás intentando realizar operaciones inválidas, como llamar a métodos que no existen en el tipo actual. Al utilizar unknown, TypeScript te fuerza a ser explícito con las verificaciones de tipo, mejorando la seguridad del código y evitando sorpresas en tiempo de ejecución.

Usar unknown es como tener un superpoder que te protege de errores tontos y te hace un programador más cuidadoso y eficiente.