TypeScript
Generics

Generics

Generics pada TypeScript adalah salah satu fitur yang memungkinkan kita untuk menulis kode yang dapat bekerja dengan berbagai tipe data. Generics memungkinkan kita untuk menulis kode yang dapat bekerja dengan berbagai tipe data, bukan hanya satu tipe data saja.

Contoh kasus:

function getData(value: any) {
  return value;
}
 
console.log(getData("Ari"));
 
console.log(getData(123));

Pada contoh diatas, kita membuat sebuah function getData yang menerima parameter value dengan tipe data any. Dengan tipe data any, kita dapat mengirimkan berbagai tipe data ke dalam function tersebut. Namun, kita tidak dapat mengetahui tipe data apa yang dikirimkan ke dalam function tersebut.

function getData<T>(value: T) {
  return value;
}
 
console.log(getData("Ari"));
 
console.log(getData(123));

Pada contoh diatas, kita membuat sebuah function getData yang menerima parameter value dengan tipe data T. Tipe data T ini nantinya akan kita tentukan saat kita memanggil function tersebut. Dengan menggunakan generics, kita dapat mengetahui tipe data apa yang dikirimkan ke dalam function tersebut.

function getData<T>(value: T) {
  return value;
}
 
console.log(getData("Ari").length);
 
console.log(getData(123).length);

T adalah bentuk convention yang biasa digunakan untuk generics. Namun, kita dapat menggunakan nama lain selama nama tersebut tidak digunakan oleh tipe data lain.

function getData<T>(value: T) {
  return value;
}
 
function myData<K>(value: K) {
  return value;
}