İkisi de herhangi bir değeri tutabilir, ancak güvenlik açısından farklıdırlar. any tür kontrolünü kapatır; unknown bunu açık tutar ve kullanmadan önce daraltmaya zorlar.
ts
: = ;
a..;
();
: = ;
u.();
();
İkisi de herhangi bir değeri tutabilir, ancak güvenlik açısından farklıdırlar. any tür kontrolünü kapatır; unknown bunu açık tutar ve kullanmadan önce daraltmaya zorlar.
: = ;
a..;
();
: = ;
u.();
();
function handle(input: unknown) {
if (typeof input === "string") {
input.toUpperCase(); // ✅ inside the guard, TS knows it's a string
}
}
unknown, any'nin tür bakımından güvenli karşılığıdır: ona herhangi bir şey atayabilirsiniz, ancak bir tür koruması yoluyla ne olduğunu kanıtlayana kadar onunla herhangi bir şey yapamazsınız.
unknown — sınırda gerçekten bilinmeyen tür değerler için: JSON.parse sonuçları, API yanıtları, catch (e: unknown). Doğrulama yapılmasını zorunlu kılar.any — JS geçişi yaparken veya gerçekten bir şeyi türlenemediğinizde kaçış kapısı. Ender kullanın; sessizce yayılır ve güvenliği devre dışı bırakır.any'ye başvurmak TypeScript'in amacını bozar.
Türlendirilmemiş sınırlarda unknown tercih edin — derleyicinin garantilerini korurken keyfi girdileri kabul eder ve verileri güvenmeden önce doğrulamaya zorlar.