TypeScriptTypeScript20 min read

TypeScript Modules and Namespaces

Organize code using ES modules and understand when namespaces are still useful.

David Miller
December 20, 2025
1.6k41

Large projects need structure.

    ## ES Modules (preferred)
    
    file math.ts:
    ```ts
    export function add(a: number, b: number) {
      return a + b;
    }
    ```
    
    file app.ts:
    ```ts
    import { add } from "./math";
    console.log(add(2, 3));
    ```
    
    ## Namespaces (older style)
    
    ```ts
    namespace Utils {
      export function log(msg: string) {
        console.log(msg);
      }
    }
    
    Utils.log("hello");
    ```
    
    ## When to use
    - Use modules for modern apps
    - Namespaces only for legacy/global scripts
    
    ## Graph
    ```mermaid
    flowchart LR
      A[Files] --> B[Exports]
      B --> C[Imports]
    ```
    
    ## Remember
    - Prefer ES modules
    - Keep code split by feature
    
#TypeScript#Intermediate#Modules