TypeScript Academy · Pelajaran

Jenis Persilangan: A dan B

Gabungkan jenis dengan & untuk mencantumkan sifatnya.

Pelajaran 2 daripada 413 langkah

Jenis Persilangan: A dan B ialah pelajaran TypeScript Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran TypeScript Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Jenis persilangan menggabungkan beberapa jenis menjadi satu. Nilai berjenis persilangan mesti memenuhi ALL jenis yang digabungkan secara serentak.

Sintaks Asas Persilangan

Gunakan operator `&` untuk mencipta persilangan. Hasilnya mempunyai semua sifat daripada kedua-dua jenis.
type Named = { name: string };
type Aged = { age: number };
type Person = Named & Aged;
const alice: Person = { name: 'Alice', age: 30 };

Semua Sifat Diperlukan

Persilangan memerlukan ALL sifat daripada semua jenis yang digabungkan. Jika mana-mana sifat tiada, hal itu menjadi ralat jenis.
type A = { x: number };
type B = { y: number };
type AB = A & B;
// const p: AB = { x: 1 }; // Error — missing y

Penggabungan Jenis Objek

Persilangan sering digunakan untuk menggabungkan dua jenis objek yang tidak melanjutkan satu sama lain.
type Serializable = { serialize(): string };
type Loggable = { log(): void };
type Service = Serializable & Loggable;

Persilangan berbanding Pewarisan

Peluasan antara muka dan persilangan menghasilkan keputusan yang serupa untuk jenis objek, tetapi persilangan berfungsi dengan alias jenis termasuk kesatuan dan jenis primitif.
// Interface extend:
interface C extends A, B {}

// Intersection type:
type D = A & B;
// Both give the same shape for simple objects

Persilangan dengan Jenis Bercanggah

Jika dua jenis yang dipersilangkan mempunyai sifat yang sama dengan jenis bercanggah, hasilnya ialah `never` untuk sifat tersebut.
type X = { id: string };
type Y = { id: number };
type XY = X & Y;
// XY.id is string & number = never — impossible!

Persilangan dalam Parameter Fungsi

Terima argumen yang mesti memenuhi beberapa kontrak antara muka menggunakan persilangan.
function process(item: Serializable & Loggable): void {
  item.log();
  console.log(item.serialize());
}

Corak Campuran dengan Persilangan

Persilangan membolehkan corak campuran — menggabungkan tingkah laku daripada beberapa sumber.
type Timestamped<T> = T & { createdAt: Date };
type User = Timestamped<{ name: string; email: string }>;

Persilangan Primitif Mengecil kepada never

Persilangan jenis primitif yang tidak boleh bertindih mengecil kepada `never`.
type T = string & number; // never — a value can't be both

Persilangan berbanding Kesatuan: Perbezaan Utama

Kesatuan (`|`) bermaksud OR — nilai itu boleh berupa mana-mana satu daripada jenis tersebut. Persilangan (`&`) bermaksud AND — nilai itu mesti memenuhi semua jenis tersebut.

Menggunakan Persilangan dengan Jenis Generik

Gabungkan jenis generik dengan sifat tambahan menggunakan persilangan untuk mendapatkan jenis yang fleksibel dan boleh diperluas.
type WithId<T> = T & { id: number };
const user: WithId<{ name: string }> = { id: 1, name: 'Alice' };

Semakan Pantas

Apakah hasil penilaian `type T = string & number`?

Ringkasan

Jenis persilangan (`&`) memerlukan ALL sifat daripada semua jenis yang digabungkan. Gunakannya untuk menggabungkan bentuk objek, melaksanakan corak campuran dan menggabungkan jenis generik. Persilangan primitif yang bercanggah mengecil kepada never.
Percuma untuk bermula

Pelajari TypeScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
101
Pelajaran
352

Soalan Lazim

Adakah pelajaran “Jenis Persilangan: A dan B” percuma?

Ya — teks penuh “Jenis Persilangan: A dan B” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus TypeScript Academy, tingkat taraf kepada CoddyKit PRO. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Jenis Persilangan: A dan B”?

Gabungkan jenis dengan & untuk mencantumkan sifatnya. Anda berlatih TypeScript Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan TypeScript Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran TypeScript Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Jenis Persilangan: A dan B” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Jenis Kesatuan: A atau B
  2. Jenis Persilangan: A dan B
  3. Kesatuan Berbeza untuk Padanan Corak yang Selamat
  4. Corak Praktikal dengan Kesatuan dan Persilangan
← Kembali ke TypeScript Academy