Functions & Generics
12 min
Last updated 23 Mar 2026
Functions & Generics di TypeScript
Generics adalah salah satu fitur paling powerful di TypeScript yang memungkinkan kita membuat fungsi dan tipe yang fleksibel namun tetap type-safe.
Typed Functions
// Parameter dan return type yang eksplisit
function multiply(a: number, b: number): number {
return a * b;
}
// Arrow function dengan tipe
const formatCurrency = (amount: number, currency: string): string => {
return `${currency}${amount.toLocaleString()}`;
};
console.log(formatCurrency(150000, "Rp ")); // "Rp 150.000"
Generics
Bayangkan kamu butuh fungsi yang mengambil elemen pertama dari array — bisa array number, string, atau tipe apapun:
// Tanpa generics — tidak type-safe
function first(arr: any[]): any {
return arr[0];
}
// Dengan generics — type-safe!
function first<T>(arr: T[]): T {
return arr[0];
}
const num = first([1, 2, 3]); // TypeScript tahu: number
const str = first(["a", "b", "c"]); // TypeScript tahu: string
Generics dengan Constraints
// T harus memiliki property .length
function getLength<T extends { length: number }>(item: T): number {
return item.length;
}
getLength("hello"); // 5 ✓
getLength([1, 2, 3]); // 3 ✓
getLength(42); // Error! number tidak punya .length ✓