Learn
← Previous Next →

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 ✓