Oba mogą przechowywać dowolną wartość, ale różnią się bezpieczeństwem. any wyłącza sprawdzanie typu; unknown je włącza i zmusza do zawężenia zakresu przed użyciem.
ts
: = ;
a..;
();
: = ;
u.();
();
Oba mogą przechowywać dowolną wartość, ale różnią się bezpieczeństwem. any wyłącza sprawdzanie typu; unknown je włącza i zmusza do zawężenia zakresu przed użyciem.
: = ;
a..;
();
: = ;
u.();
();
function handle(input: unknown) {
if (typeof input === "string") {
input.toUpperCase(); // ✅ inside the guard, TS knows it's a string
}
}
unknown jest bezpiecznym względem typu odpowiednikiem any: możesz przypisać cokolwiek do niego, ale nie możesz zrobić nic z nim, dopóki nie udowodnisz, czym jest, poprzez strażnika typu.
unknown — dla wartości naprawdę nieznanego typu na granicy: wyniki JSON.parse, odpowiedzi API, catch (e: unknown). Zmusza do walidacji.any — wyjście awaryjne podczas migracji JavaScript lub gdy naprawdę nie możesz czegoś wytypować. Używaj oszczędnie; rozprzestrzenia się cicho i wyłącza bezpieczeństwo.Sięgnięcie po any udaremnia cel TypeScript.
Woleć unknown na niezatypizowanych granicach — utrzymuje gwarancje kompilatora, jednocześnie akceptując dowolne dane wejściowe, zmuszając cię do walidacji danych przed zaufaniem im.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj