TypeScript keyof and typeof
Use keyof and typeof to build types from existing objects and make safer APIs.
David Miller
Jan 5, 2026
38.5k1,078
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
#TypeScript#Intermediate#Types