TypeScript keyof and typeof
Use keyof and typeof to build types from existing objects and make safer APIs.
These operators help you create types from values. ## typeof ```ts const user = { id: 1, name: "Tom" }; type User = typeof user; ``` Now User is { id: number; name: string } ## keyof ```ts type UserKeys = keyof User; // "id" | "name" ``` ## Use together ```ts function getProp<T, K extends keyof T>(obj: T, key: K) { return obj[key]; } getProp(user, "name"); // getProp(user, "age"); ❌ ``` ## Graph ```mermaid flowchart LR A[Object] --> B[typeof] B --> C[Type] C --> D[keyof] D --> E[Union of keys] ``` ## Remember - typeof turns value into type - keyof gives safe property names