Q20: How do Generic Parameter Defaults work?

Difficulty:MediumTopic:Generics

Similar to JavaScript function argument defaults, generic parameter defaults allow specifying fallback types using the <T = DefaultType> syntax when caller type arguments are omitted.

Generic Default Type Signature
interface ApiResponse<TData = { status: string }> {
  data: TData;
  statusCode: number;
}

// Uses default type { status: string }
const defaultRes: ApiResponse = { data: { status: "OK" }, statusCode: 200 };

// Overrides default type with custom user structure
const userRes: ApiResponse<{ name: string }> = {
  data: { name: "Alice" },
  statusCode: 200
};
💡 If no generic parameter is explicitly passed, TypeScript defaults to TData = { status: string }.
Key Takeaways
  • Generic parameter defaults fall back gracefully when explicit type arguments are omitted.