Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah Pengawal Jenis Diperlukan? Meneroka Pelbagai Jenis dan Kes Penggunaannya

Mengapakah Pengawal Jenis Diperlukan? Meneroka Pelbagai Jenis dan Kes Penggunaannya

Susan Sarandon
Susan Sarandonasal
2024-11-11 19:39:03747semak imbas

Why Are Type Guards Necessary? Exploring Different Types and Their Use Cases

Mengapa Pengawal Jenis Diperlukan? Meneroka Pelbagai Jenis dan Kes Penggunaannya

Dalam TypeScript, type guards memainkan peranan penting dalam menjadikan pangkalan kod lebih dipercayai dan mesra pembangun. Mereka membantu memastikan keselamatan jenis dengan membenarkan pembangun mengecilkan jenis, yang membantu dalam ralat masa jalan dan menjadikan kod lebih mudah difahami dan mudah diselenggara.

Apakah Pengawal Jenis?

Pengadang jenis ialah ungkapan od fungsi yang melakukan semakan masa jalan pada jenis, memastikan nilai memenuhi kriteria tertentu sebelum ia diproses selanjutnya. Ia membantu mengekalkan keselamatan jenis, membolehkan pembangun mengendalikan nilai dengan sewajarnya.

Mengapa Pengawal Jenis Diperlukan?

Dalam JavaScript, anda sering menemui nilai yang mungkin mempunyai berbilang jenis, seperti fungsi yang mengembalikan sama ada rentetan atau nombor. Tanpa pengawal jenis, TypeScript tidak akan dapat menentukan jenis yang tepat, yang membawa kepada kemungkinan ralat masa jalan dan tingkah laku yang salah. Pengawal jenis membolehkan anda menyemak jenis nilai pada masa jalan, membantu TypeScript mengecilkan jenis dan menyediakan penyemakan jenis yang lebih tepat.

Jenis Pengawal Jenis Biasa dan Kes Penggunaannya

1. jenis Pengawal Jenis

Kes Penggunaan: Pemeriksaan jenis asas untuk jenis primitif.
Contoh:

function printValue(value: string | number) {
  if (typeof value === "string") {
    console.log(`String value: ${value.toUpperCase()}`);
  } else {
    console.log(`Number value: ${value.toFixed(2)}`);
  }
}

Penjelasan: typeof berkesan dengan jenis primitif (rentetan, nombor, boolean). Ia membolehkan fungsi mengendalikan jenis rentetan dan nombor secara berbeza.

2. Pengawal Jenis Tersuai (ialah Kata Kunci)

Kes Penggunaan: Untuk logik yang kompleks, semak bentuk atau antara muka tersuai.

Contoh:

 interface Square {
    side: number;
  }
  interface Circle {
    radius: number;
  }

  function isSquare(shape: Square | Circle): shape is Square {
    return (shape as Square).side !== undefined;
  }

  function calculateArea(shape: Square | Circle) {
    if (isSquare(shape)) {
      return shape.side * shape.side;
    } else {
      return Math.PI * shape.radius * shape.radius;
    }
  }

Penjelasan: Pengawal jenis tersuai membolehkan anda menentukan fungsi yang menyemak atribut khusus untuk menentukan jenis. Di sini, isSquare menyemak kehadiran harta sampingan.

3. dalam Pengawal Jenis Operator

Kes Penggunaan: Menyemak sama ada objek mempunyai sifat tertentu.
Contoh:

 interface Car {
    drive(): void;
  }
  interface Boat {
    sail(): void;
  }

  function move(vehicle: Car | Boat) {
    if ("drive" in vehicle) {
      vehicle.drive();
    } else {
      vehicle.sail();
    }
  }

Penjelasan: Operator dalam menyemak kewujudan harta, membantu TypeScript memahami jenis dan membenarkan akses kepada kaedah yang berkaitan.

Kesimpulan

Pengadang jenis ialah ciri berkuasa dalam TypeScript yang membolehkan semakan jenis yang tepat, mengurangkan ralat dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Dengan memanfaatkan jenis, instanceof, pengawal jenis tersuai dan pengendali dalam, anda boleh mengendalikan jenis kompleks dengan selamat dan berkesan dalam projek TypeScript.

Atas ialah kandungan terperinci Mengapakah Pengawal Jenis Diperlukan? Meneroka Pelbagai Jenis dan Kes Penggunaannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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