Ambos podem conter qualquer valor, mas diferem em segurança. any desativa a verificação de tipo; unknown a mantém ativa e força você a estreitar antes de usar.
ts
: = ;
a..;
();
: = ;
u.();
();
Ambos podem conter qualquer valor, mas diferem em segurança. any desativa a verificação de tipo; unknown a mantém ativa e força você a estreitar antes de usar.
: = ;
a..;
();
: = ;
u.();
();
Uma biblioteca de perguntas de entrevista de TI com respostas detalhadas — de Júnior a Sênior.
Doarfunction handle(input: unknown) {
if (typeof input === "string") {
input.toUpperCase(); // ✅ inside the guard, TS knows it's a string
}
}
unknown é a contrapartida type-safe de any: você pode atribuir qualquer coisa a ele, mas não pode fazer nada com ele até provar o que é através de um type guard.
unknown — para valores de tipo genuinamente desconhecido na fronteira: resultados de JSON.parse, respostas de API, catch (e: unknown). Força validação.any — escotilha de escape ao migrar JS ou quando você realmente não consegue tipificar algo. Use com moderação; espalha-se silenciosamente e desativa a segurança.Recorrer a any derrota o propósito do TypeScript.
Prefira unknown em fronteiras não tipificadas — mantém as garantias do compilador enquanto ainda aceita entrada arbitrária, empurrando você a validar dados antes de confiar neles.