Keduanya dapat menampung nilai apa pun, tetapi berbeda dalam keamanan. any mematikan pemeriksaan tipe; unknown tetap aktif dan memaksa Anda mempersempit sebelum digunakan.
ts
: = ;
a..;
();
: = ;
u.();
();
Keduanya dapat menampung nilai apa pun, tetapi berbeda dalam keamanan. any mematikan pemeriksaan tipe; unknown tetap aktif dan memaksa Anda mempersempit sebelum digunakan.
: = ;
a..;
();
: = ;
u.();
();
function handle(input: unknown) {
if (typeof input === "string") {
input.toUpperCase(); // ✅ inside the guard, TS knows it's a string
}
}
unknown adalah rekan tipe-aman dari any: Anda dapat memberikan apa pun kepadanya, tetapi Anda tidak dapat melakukan apa pun dengannya sampai Anda membuktikan apa itu melalui penjaga tipe.
unknown — untuk nilai tipe yang benar-benar tidak diketahui di perbatasan: hasil JSON.parse, respons API, catch (e: unknown). Ini memaksa validasi.any — pintu darurat saat melakukan migrasi JS atau saat Anda benar-benar tidak dapat mengetik sesuatu. Gunakan sesedikit mungkin; menyebar secara diam-diam dan menonaktifkan keamanan.Menjangkau any mengalahkan tujuan TypeScript.
Perilih unknown di perbatasan yang tidak diketik — ia menjaga jaminan kompiler sambil tetap menerima input arbitrer, mendorong Anda untuk memvalidasi data sebelum mempercayainya.