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