Cara Membuat dan Menggunakan Jenis Utilitas TypeScript

TypeScript menyediakan sekumpulan utility types ​​yang memudahkan transformasi dan pengelolaan tipe yang ada. Tipe utilitas bawaan ini memungkinkan pengembang untuk memanipulasi tipe dengan berbagai cara, membantu menyederhanakan kode dan menghindari pengulangan. Panduan ini membahas beberapa tipe utilitas yang paling umum dan cara pembuatan serta penggunaannya dalam proyek TypeScript.

Apa Jenis Utilitas TypeScript?

Tipe utilitas dalam TypeScript adalah tipe yang telah ditetapkan sebelumnya yang membantu dalam mengubah tipe lain. Tipe utilitas dapat digunakan untuk membuat tipe baru berdasarkan tipe yang sudah ada dengan memilih, menghilangkan, atau memodifikasi properti. Tipe utilitas berperan penting dalam menjaga kode tetap bersih dan dapat digunakan kembali.

Jenis Utilitas TypeScript yang Umum Digunakan

Berikut adalah beberapa jenis utilitas TypeScript yang paling umum digunakan:

  • Partial<T> – Membuat semua properti bertipe T menjadi opsional.
  • Diperlukan<T> – Membuat semua properti bertipe T menjadi wajib.
  • Readonly<T> – Membuat semua properti bertipe T hanya-baca.
  • Pick<T, K> – Memilih sekumpulan properti K dari tipe T.
  • Hilangkan <T, K> – Menghapus serangkaian properti K dari tipe T.
  • Record<K, T> – Membuat tipe objek dengan kunci bertipe K dan nilai bertipe T.

Contoh: Menggunakan Parsial<T>

Tipe utilitas Partial menjadikan semua properti antarmuka bersifat opsional. Berikut cara penggunaannya:

interface User {
  name: string;
  age: number;
  email: string;
}

const updateUser = (user: Partial<User>) => {
  // Update logic
};

updateUser({ name: "John" });

Dalam contoh ini, updateUser menerima argumen bertipe Partial<User>, artinya hanya beberapa properti antarmuka User yang diperlukan.

Contoh: Menggunakan Pick<T, K>

Tipe utilitas Pick memungkinkan pemilihan subset properti dari suatu tipe:

interface User {
  name: string;
  age: number;
  email: string;
}

type UserContactInfo = Pick<User, "name" | "email">;

const contactInfo: UserContactInfo = {
  name: "John",
  email: "[email protected]"
};

Di sini, Pick<User, “name” | “email”> membuat tipe baru UserContactInfo hanya dengan properti name dan email dari antarmuka User asli.

Contoh: Menggunakan Omit<T, K>

Tipe utilitas Omit menghapus properti yang ditentukan dari suatu tipe:

interface User {
  name: string;
  age: number;
  email: string;
}

type UserWithoutEmail = Omit<User, "email">;

const user: UserWithoutEmail = {
  name: "John",
  age: 30
};

Dalam contoh ini, tipe UserWithoutEmail dibuat dengan menghilangkan properti email dari antarmuka User.

Membuat Jenis Utilitas Kustom

Tipe utilitas kustom juga dapat dibuat menggunakan fitur tipe lanjutan TypeScript seperti tipe kondisional, tipe yang dipetakan, dan banyak lagi. Berikut ini adalah contoh sederhana tipe utilitas kustom yang menjadikan semua properti bersifat opsional:

type MyPartial<T> = {
  [P in keyof T]?: T[P];
};

interface User {
  name: string;
  age: number;
  email: string;
}

const user: MyPartial<User> = {
  name: "Alice"
};

Tipe MyPartial kustom ini berfungsi serupa dengan tipe utilitas Partial bawaan TypeScript.

Kesimpulan

Tipe utilitas TypeScript merupakan fitur penting untuk bekerja dengan tipe secara fleksibel dan dapat digunakan kembali. Dengan memanfaatkan tipe utilitas ini, kode dapat dibuat lebih ringkas dan mudah dipelihara. Baik menggunakan tipe utilitas bawaan seperti Partial, Pick, dan Omit atau membuat tipe khusus, tipe utilitas ini secara signifikan meningkatkan sistem tipe TypeScript.