TypeScript keyof and typeof
Use keyof and typeof to build types from existing objects and make safer APIs.
David Miller
January 6, 2026
0.7k16
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