TypeScriptTypeScript22 min read

TypeScript Mapped Types

Learn mapped types to build new types by looping over keys of existing ones.

David Miller
January 3, 2026
0.7k22

Mapped types let you create new types from existing ones.

    ## Basic mapped type
    
    ```ts
    type Flags<T> = {
      [K in keyof T]: boolean;
    };
    
    type User = { id: number; name: string };
    type UserFlags = Flags<User>;
    ```
    
    UserFlags becomes:
    { id: boolean; name: boolean }
    
    ## Make all readonly
    
    ```ts
    type ReadonlyType<T> = {
      readonly [K in keyof T]: T[K];
    };
    ```
    
    ## Graph
    ```mermaid
    flowchart LR
      A[keyof T] --> B[Loop keys]
      B --> C[New type]
    ```
    
    ## Remember
    - Mapped types transform properties
    - Used in many utility types
    
#TypeScript#Intermediate#Mapped Types