TypeScript - Generics: Basics, Constraints & Defaults

Generic functions

function identity(x: T): T { return x }
const a = identity(42);    // T = number
const b = identity("ok"); // T = string

Constraints

function getId(x: T) { return x.id }

Default type parameters

interface ApiResponse { ok: boolean; data: T }

Generic classes & interfaces

class Box { constructor(public value: T) {} }
interface Pair { first: A; second: B }