Generics
Reusable code with type safety
10-15 min
Generics in TypeScript
Generics let you create reusable components that can work with different types while preserving type safety.
Introduction to generics
The problem without generics
// Without generics - duplicated code
function identiteString(arg: string): string {
return arg;
}
function identiteNumber(arg: number): number {
return arg;
}
function identiteBoolean(arg: boolean): boolean {
return arg;
}
// Or using any - loss of type safety
function identiteAny(arg: any): any {
return arg;
}
The solution with generics
// With generics - reusable and type-safe
function identite<T>(arg: T): T {
return arg;
}
// Usage
let resultatString = identite<string>("hello"); // Type: string
let resultatNumber = identite<number>(42); // Type: number
let resultatBoolean = identite<boolean>(true); // Type: boolean
// Type inference
let resultat1 = identite("hello"); // TypeScript infers T = string
let resultat2 = identite(42); // TypeScript infers T = number
Generic functions
Basic syntax
// Simple generic function
function premierElement<T>(tableau: T[]): T | undefined {
return tableau[0];
}
let nombres = [1, 2, 3, 4, 5];
let premier = premierElement(nombres); // Type: number | undefined
let mots = ["hello", "world"];
let premierMot = premierElement(mots); // Type: string | undefined
Comments
Comments are powered by GitHub Discussions
Sign in with GitHub to join the discussion