Utility Types
Penjelasan
TypeScript menyediakan beberapa utility types bawaan untuk transformasi tipe yang sudah ada tanpa menulis ulang: Partial<T> (semua properti jadi opsional), Pick<T, K> (ambil sebagian properti saja), Omit<T, K> (buang sebagian properti), Record<K, V> (bentuk objek dengan key dan value bertipe tertentu), dan Readonly<T> (semua properti jadi readonly).
Contoh Konsep
interface Produk {
id: number;
nama: string;
harga: number;
}
type ProdukUpdate = Partial<Produk>; // semua properti opsional, cocok buat data update parsial
type ProdukRingkas = Pick<Produk, "id" | "nama">; // cuma ambil id & nama
type ProdukTanpaId = Omit<Produk, "id">; // semua properti KECUALI id
type StokPerKota = Record<string, number>; // objek dengan key string, value number
const update: ProdukUpdate = { harga: 15000 }; // sah, meski cuma isi 1 properti
const stok: StokPerKota = { jakarta: 100, bandung: 50 };
Praktikum
Dengan interface Produk di atas (id, nama, harga), buat type alias ProdukPreview memakai Pick untuk hanya ambil nama dan harga. Buat juga const daftarStok: Record<string, number> berisi minimal 2 pasangan kota-jumlah stok.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Utility types ini murni bekerja di level TIPE saja (hilang total setelah di-compile ke JavaScript) — tidak menambah overhead runtime sama sekali, jadi bebas dipakai sesering mungkin untuk menjaga konsistensi tipe tanpa duplikasi interface.