Study
TypeScript

Union & Intersection Types

Penjelasan

Union type (|) berarti sebuah nilai boleh salah satu dari beberapa tipe. Intersection type (&) berarti sebuah nilai harus memenuhi SEMUA tipe sekaligus — biasa dipakai untuk menggabungkan beberapa interface jadi satu tipe baru.

Contoh Konsep

function format(nilai: string | number): string {
    return `Nilai: ${nilai}`;
}

interface BisaTerbang { terbang(): void; }
interface BisaBerenang { berenang(): void; }

type Amfibi = BisaTerbang & BisaBerenang; // harus punya KEDUA method

const bebek: Amfibi = {
    terbang() { console.log("Bebek terbang"); },
    berenang() { console.log("Bebek berenang"); },
};

Praktikum

Buat fungsi cetakId(id: string | number): void yang mencetak id apa pun tipenya. Buat dua interface: Karyawan { nama: string } dan Manajer { anggotaTim: number }, lalu buat type alias KaryawanManajer sebagai intersection keduanya, dan buat satu objek yang memenuhi kedua interface itu.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Union (|) cocok dibayangkan sebagai "ATAU" (salah satu tipe cukup), sedangkan intersection (&) cocok dibayangkan sebagai "DAN" (harus memenuhi semua tipe sekaligus) — kebalikan cara kerjanya, sering tertukar oleh pemula.