`any` x `unknown` x `never`
Pergunta
Qual a diferença entre `any`, `unknown` e `never` em TypeScript, e por que `unknown` costuma ser a escolha certa onde as pessoas usam `any`?
Resposta esperada
`any` desliga o checador pra aquele valor: você pode acessar qualquer propriedade e atribuí-lo a qualquer coisa — é um buraco na tipagem que se propaga. `unknown` é o topo 'seguro': qualquer valor cabe nele, mas você não pode fazer NADA com um `unknown` sem antes estreitar o tipo (checar `typeof`, `in`, um type guard). É o tipo certo pra entrada não confiável (resposta de API, `JSON.parse`, `catch`): força você a validar antes de usar. `never` é o tipo vazio — nenhum valor é `never`; aparece como retorno de função que sempre lança ou faz loop infinito, e em ramos impossíveis de um `switch` exaustivo (útil pra o compilador reclamar se você adiciona um caso e esquece de tratar).
Por que perguntam isso
Pergunta pleno de TS. Sinal de domínio: 'unknown força validar' pra entrada externa e o uso de `never` pra exaustividade de switch.