Memahami TypeScript Generics

1979

Memahami TypeScript Generics

Generics adalah salah satu fitur paling powerful di TypeScript. Mereka memungkinkan Anda menulis kode yang reusable dan type-safe tanpa mengorbankan fleksibilitas.

Apa Itu Generics?

Generics memungkinkan Anda memparameterisasi tipe, mirip dengan bagaimana fungsi memparameterisasi nilai:

// Fungsi yang bekerja dengan tipe APA SAJA
function identity<T>(arg: T): T {
  return arg;
}

const num = identity(42);        // tipe: number
const str = identity("hello");   // tipe: string

Constraint Generics

Anda bisa membatasi tipe apa yang diterima:

interface HasLength {
  length: number;
}

function logLength<T extends HasLength>(arg: T): T {
  console.log(arg.length);
  return arg;
}

logLength("hello");     // ✅ string punya length
logLength([1, 2, 3]);   // ✅ array punya length
// logLength(42);        // ❌ number tidak punya length

Utility Types Generics

TypeScript menyediakan tipe generik built-in:

type Partial<T> = { [K in keyof T]?: T[K] };
type Readonly<T> = { readonly [K in keyof T]: T[K] };
type Pick<T, K extends keyof T> = { [P in K]: T[P] };

Contoh Real-World

async function fetchJson<T>(url: string): Promise<T> {
  const res = await fetch(url);
  return res.json() as Promise<T>;
}

interface User {
  id: number;
  name: string;
}

const user = await fetchJson<User>('/api/user');
// user bertipe User

Generics membuat kode Anda sekaligus fleksibel dan type-safe — kombinasi terbaik dari keduanya.

Comments

Loading comments...

Leave a comment

Your name and email are saved locally in your browser so you don't have to re-enter them.