TypeScript menawarkan sistem jenis yang mantap, tetapi jenis tertentu boleh mengelirukan, iaitu mana-mana, tidak diketahui dan tidak pernah. Mari kita pecahkan untuk pemahaman yang lebih baik.
Mana-mana jenis adalah yang paling mudah daripada ketiga-tiganya. Ia pada asasnya melumpuhkan pemeriksaan jenis, membenarkan pembolehubah memegang sebarang jenis nilai. Contohnya:
let value: any; value = 42; // number value = "Hello"; // string value = [1, 2, 3]; // array value = () => {}; // function value = { key: "val" }; // object value = new Date(); // date
Dalam semua kes ini, TypeScript tidak menimbulkan sebarang ralat, membenarkan kami melakukan sebarang operasi pada pembolehubah tanpa kekangan jenis. Ini boleh berguna apabila memindahkan projek JavaScript ke TypeScript. Walau bagaimanapun, bergantung pada mana-mana menafikan faedah keselamatan jenis, menjadikannya pilihan yang buruk dalam kebanyakan kes. Sebaliknya, pertimbangkan untuk menggunakan tidak diketahui.
Jenis yang tidak diketahui adalah lebih selamat daripada mana-mana kerana ia memerlukan pemeriksaan jenis sebelum menjalankan operasi. Ia mewakili set semua nilai yang mungkin, tetapi dengan keselamatan jenis dikuatkuasakan.
let value: unknown; value = 42; value = "Hello"; // To perform operations, we need to narrow down the type if (typeof value === "number") { console.log(value + 1); // TypeScript knows value is a number here }
Menggunakan tidak diketahui bermanfaat untuk fungsi yang menerima sebarang jenis input, seperti fungsi pengelogan, kerana ia menguatkuasakan semakan jenis sebelum meneruskan operasi.
Jenis tidak pernah mewakili set nilai kosong, menunjukkan bahawa sesuatu tidak sepatutnya berlaku. Tiada nilai boleh diberikan kepada jenis yang tidak pernah, menjadikannya berguna untuk semakan menyeluruh dan mewakili kod yang tidak boleh dicapai.
type User = { type: "admin" } | { type: "standard" }; function handleUser(user: User) { switch (user.type) { case "admin": // handle admin break; case "standard": // handle standard break; default: const _exhaustiveCheck: never = user; // This ensures all cases are handled } }
Jika jenis pengguna baharu ditambahkan, TypeScript akan menimbulkan ralat, memastikan semua kes ditangani, menjadikan ia tidak ternilai untuk mengekalkan semakan menyeluruh dalam kod anda.
Memahami mana-mana, tidak diketahui, dan tidak sekali-kali meningkatkan keselamatan jenis TypeScript. Gunakan apa-apa dengan berhati-hati, memilih yang tidak diketahui untuk pemeriksaan jenis yang lebih selamat, dan manfaatkan jangan sekali-kali untuk pemeriksaan menyeluruh dan kod yang tidak boleh dicapai. Jenis ini, apabila digunakan dengan betul, menjadikan TypeScript sebagai alat yang berkuasa untuk membina aplikasi yang boleh dipercayai.
Selamat mengekod!
Atas ialah kandungan terperinci Memahami any, unknown, dan never' dalam TypeScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!