Båda kan innehålla vilket värde som helst, men de skiljer sig åt i säkerhet. any stänger av typkontroll; unknown behåller den på och tvingar dig att begränsa innan användning.
ts
: = ;
a..;
();
: = ;
u.();
();
Båda kan innehålla vilket värde som helst, men de skiljer sig åt i säkerhet. any stänger av typkontroll; unknown behåller den på och tvingar dig att begränsa innan användning.
: = ;
a..;
();
: = ;
u.();
();
function handle(input: unknown) {
if (typeof input === "string") {
input.toUpperCase(); // ✅ inside the guard, TS knows it's a string
}
}
unknown är typmotsvarigheten till any: du kan tilldela vad som helst till det, men du kan inte göra något med det förrän du bevisar vad det är via en typgard.
unknown — för värden av genuint okänd typ vid gränser: JSON.parse-resultat, API-svar, catch (e: unknown). Det tvingar validering.any — utväg när du migrerar JS eller när du verkligen inte kan typbeskriva något. Använd sparsamt; det sprids tyst och inaktiverar säkerhet.Att gripa till any förstör syftet med TypeScript.
Föredra unknown vid otypade gränser — det behåller kompilatorns garantier medan det fortfarande accepterar godtycklig inmatning, vilket tvingar dig att validera data innan du litar på den.