Language 7 of 10 · Topic 0.4

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.