Rumah > hujung hadapan web > tutorial js > Memahami &#any&#, &#unknown&#, dan &#never' dalam TypeScript

Memahami &#any&#, &#unknown&#, dan &#never' dalam TypeScript

王林
Lepaskan: 2024-07-16 12:24:48
asal
1011 orang telah melayarinya

Understanding

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

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
Salin selepas log masuk

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

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
}

Salin selepas log masuk

Menggunakan tidak diketahui bermanfaat untuk fungsi yang menerima sebarang jenis input, seperti fungsi pengelogan, kerana ia menguatkuasakan semakan jenis sebelum meneruskan operasi.

Jenis yang tidak pernah

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
  }
}

Salin selepas log masuk

Jika jenis pengguna baharu ditambahkan, TypeScript akan menimbulkan ralat, memastikan semua kes ditangani, menjadikan ia tidak ternilai untuk mengekalkan semakan menyeluruh dalam kod anda.

Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan