Beide kunnen elke waarde bevatten, maar ze verschillen in veiligheid. any schakelt typechecking uit; unknown houdt het aan en dwingt je af te smalten voordat je het gebruikt.
ts
: = ;
a..;
();
: = ;
u.();
();
Beide kunnen elke waarde bevatten, maar ze verschillen in veiligheid. any schakelt typechecking uit; unknown houdt het aan en dwingt je af te smalten voordat je het gebruikt.
: = ;
a..;
();
: = ;
u.();
();
function handle(input: unknown) {
if (typeof input === "string") {
input.toUpperCase(); // ✅ inside the guard, TS knows it's a string
}
}
unknown is het typeveilige tegenhanger van any: je kunt alles eraan toewijzen, maar je kunt er niets mee doen totdat je via een type guard bewijst wat het is.
unknown — voor waarden van werkelijk onbekend type op de grens: JSON.parse resultaten, API-antwoorden, catch (e: unknown). Het dwingt validatie af.any — ontsnappingsluik bij het migreren van JS of wanneer je iets echt niet kunt typen. Gebruik zelden; het verspreidt zich stil en schakelt veiligheid uit.Naar any grijpen verslaat het doel van TypeScript.
Voorkeur geven aan unknown op ongetypeerde grenzen — het behoudt de garanties van de compiler terwijl het nog steeds willekeurige invoer accepteert, wat je pusht om gegevens te valideren voordat je ze vertrouwt.