Generic type typescript
generic type adalah sebuah fitur untuk menentukan sebuah tipe data secara umum atau abstract. Generic type hanya berlaku pada bahasa pemrograman type system. next ke pembahasa generic type. sebagai contoh ada sebuah function yang fungsinya untuk menampilkan data. contohnya seperti ini
function getValue(value: string[]) {
value.map((item) => console.log(item));
}
getValue(["hello", "test"]);
ketika dijalankan kode akan berjalan dengan lancar. Tapi dikemudian hari ternyata ada fitur yang yang sama tetapi data argumentnya bertipe number. apakah function tadi bakalan bisa dipakai lagi? tentu tidak. misal dipaksa akan muncul error
Type 'number' is not assignable to type 'string'.
misal bikin function baru lagi bertipekan number kan bisa?
itu bisa saja dilakukan tapi itu akan memakan waktu dan seperti pepatah less code is less bug.
Dari sini si generic type ini ada. dengan generic ini functionnya bisa dipakai dibeberapa kondisi tiped data(polymorphic).
function getValue<T>(value: T[]): void {
value.map((item) => console.log(item));
}
getValue(["hello", "test"]);
getValue([1, 2, 3]);
function getValue<T>(value: T[]): T[] {
return value.map((item) => item);
}
getValue(["hello", "test"]);
getValue([1, 2, 3]);
kenapa T atau Tipe diatas dipanggil sebanyak 3 kali? karena dari type tersebut memiliki fungsinya masing masing
- T pertama : memberitahukan bahwa function tersebut bertipe generic atau lebih dikenal
type inference, dan tipe ini akan dipaggil di parameter pada funtion tersebut - T kedua : tipe parameter
- T ketiga : tipe data yang dikembalikan atau return oleh function tersebut