Generics (<T>), Constraints (extends) & Keyof Operator
1Concept
Generics create reusable, type-safe functions and data structures. Generic constraints (<T extends object>) restrict parameter types.
2Architecture Diagram
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K]
3Code Example
Stage 0 Language Foundations
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const serverConfig = { host: "localhost", port: 8080, ssl: true };
const port = getProperty(serverConfig, "port"); // Type deduced as number!
console.log(`Server Port: ${port}`);4Expected Output
Server Port: 8080
5Key Takeaways
- ✓Generics provide type safety without duplicating code.
- ✓keyof T extracts union of object keys.
- ✓Generic constraints (extends) ensure specific properties exist.