TypeScript Generics: Writing Flexible, Reusable Code

Generics let you write functions and classes that work with any type while maintaining type safety. They’re essential for reusable TypeScript code.

Basic Generic Function

function identity<T>(value: T): T {
  return value;
}

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

Generic Interfaces

interface ApiResponse<T> {
  data: T;
  status: number;
  message: string;
}

const userResponse: ApiResponse<User> = {
  data: { id: 1, name: "John" },
  status: 200,
  message: "Success"
};

Constraints

interface HasId { id: number; }

function findById<T extends HasId>(items: T[], id: number): T | undefined {
  return items.find(item => item.id === id);
}

References


Discover more from C4: Container, Code, Cloud & Context

Subscribe to get the latest posts sent to your email.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.