Lewati ke konten utama

Props & Interface

Props (Properties) adalah cara komponen induk mengirim data ke komponen anak (mirip atribut HTML).

Karena kita pakai TypeScript, kita wajib mendefinisikan "Bentuk Data" props menggunakan Interface.

Studi Kasus: Kartu Profil

1. Buat Interface (Kontrak Data)

Kita tentukan bahwa komponen Kartu butuh nama (string) dan umur (number).

interface KartuProps {
nama: string;
umur: number;
pekerjaan?: string; // Opsional
}

2. Terapkan di Komponen

Gunakan syntax ({ nama, umur }: KartuProps) untuk langsung memecah data (Destructuring).

const Kartu = ({ nama, umur, pekerjaan }: KartuProps) => {
return (
<div className="border p-4 rounded shadow">
<h2 className="text-xl font-bold">{nama}</h2>
<p>Umur: {umur} tahun</p>
{/* Jika pekerjaan ada, tampilkan. Jika tidak, abaikan. */}
{pekerjaan && <p>Job: {pekerjaan}</p>}
</div>
);
};

3. Cara Pakai (Aman Terkendali)

TS akan error jika kita lupa mengisi nama atau salah mengisi umur dengan teks.

// ✅ Benar
<Kartu nama="Faqih" umur={25} />

// ❌ Error (Kurang 'umur')
// <Kartu nama="Budi" />

// ❌ Error (Tipe data salah)
// <Kartu nama="Budi" umur="Dua Puluh" />