0Pricing
TypeScript Academy · Lesson

Namespaces vs Modules: Modern Usage

Understand why modules are preferred over namespaces.

Welcome

TypeScript originally had namespaces (formerly 'internal modules') to organize code. Modern TypeScript uses ES modules instead. This lesson explains when each is appropriate.

What Is a Namespace

A namespace is a TypeScript-specific way to group related code under a named scope using the `namespace` keyword.
namespace Geometry {
  export interface Point { x: number; y: number; }
  export function distance(a: Point, b: Point): number {
    return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
  }
}

All lessons in this course

  1. ES Module Syntax: import and export
  2. Re-exports and Barrel Files
  3. Type-Only Imports and Exports
  4. Namespaces vs Modules: Modern Usage
← Back to TypeScript Academy