Avatar ·

unknown vs any: qual a diferença e quando usar cada um em TypeScript?

Olá! Recentemente comecei a estudar TypeScript e me deparei com os tipos `any` e `unknown`. Ambos parecem permitir armazenar qualquer coisa, mas não entendo bem qual a diferença entre eles e quando usar cada um. Aqui está um exemplo que me confunde. Tenho uma função que recebe dados de uma API e não sei exatamente o que virá: ```typescript function processData(data: any) { console.log(data.toUpperCase()); // Funciona, mas se data não for string, quebra em runtime } ``` Se eu substituir `any` por `unknown`: ```typescript function processData(data: unknown) { console.log(data.toUpperCase()); // Erro de compilação: Object is of type 'unknown' } ``` Então, com `unknown` o código nem compila. Para que serve `unknown` se só atrapalha? Ouvi dizer que `unknown` é mais seguro, mas na prática não vejo vantagens, só problemas extras. Também não entendo como trabalhar corretamente com `unknown`. Se recebo dados de uma API, ainda assim preciso