Utility Types
TypeScript menyediakan alat bantu untuk mengubah-ubah Interface dengan cepat. Ini sangat sering dipakai untuk Props di React.
Misal kita punya Interface dasar:
interface User {
id: number;
nama: string;
email: string;
}
1. Partial<T> (Jadi Opsional Semua)
Mengubah semua properti menjadi boleh kosong (?).
- Kegunaan: Saat update data profil (tidak harus update semua kolom).
// Sekarang id, nama, & email boleh kosong
const updateData: Partial<User> = {
nama: "Faqih Baru"
// id & email tidak diisi tidak error
};
2. Required<T> (Jadi Wajib Semua)
Kebalikan dari Partial. Mengubah yang tadinya opsional (?) menjadi wajib diisi.
3. Omit<T, K> (Buang Sebagian)
Mengambil semua properti, KECUALI yang kita sebutkan.
- Kegunaan: Saat menampilkan data ke user (Password/ID tidak boleh ditampilkan).
// Buat tipe baru tanpa 'email'
type UserTanpaEmail = Omit<User, "email">;
const tamu: UserTanpaEmail = {
id: 1,
nama: "Budi"
// email: "budi@mail.com" // ❌ Error kalau maksa diisi
};
4. Pick<T, K> (Ambil Sebagian)
Kebalikan dari Omit. Kita cuma mengambil yang kita butuhkan saja.
// Cuma butuh email saja
type HanyaEmail = Pick<User, "email">;