Faz parte do material de TypeScript que eu montei a partir das minhas entrevistas. Abaixo, a resposta em inglês e, quando existe, a pegadinha mais comum.
A resposta, como você fala na entrevista
unknown accepts values of any type, but requires narrowing or an assertion before unsafe operations such as property access or calls. You can still assign, compare, and inspect an unknown value to narrow it.
any opts out of many checks for that value and can spread unchecked assumptions into callers. Prefer unknown at untrusted boundaries, then validate. Keep any narrowly scoped when an external typing gap requires it.
Ler é o primeiro passo. No app, essa pergunta vira flashcard com repetição espaçada, e o módulo tem quiz e simulado para testar o que ficou.
Treinar essa pergunta no app