Q20: How do Generic Parameter Defaults work?
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.