Lesson overview · Free interview practice

Namespaces and Modules

Master TypeScript modules and namespaces.

Topics in the full lesson
  • Introduction to Code Organization
  • Understanding Namespaces
  • Understanding Modules
  • Namespaces vs. Modules
  • Module Resolution Strategies
  • Organizing Code with Modules
  • Practical Examples
  • Best Practices
  • Exercises

Practice Problems

Work through a question before revealing its explanation. These questions and answers are free; Premium adds the full lesson walkthrough, examples and implementation detail.

Completion marks record your own progress, not an automatically checked result. The task type does not determine whether it is optional.

TheoryEasy

Barrel Files: Aggregating Re-exports

Question

What is a barrel file in TypeScript, and what are the trade-offs? When do they help vs hurt?

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryMedium

Namespaces vs ES Modules: The Modern TS Story

Question

What's the difference between TypeScript namespaces and ES modules? Which should you use, and what's the historical context?

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryMedium

ES Modules in TypeScript: `import type` and Modern Syntax

Question

How do ES modules work in TypeScript, and what's the difference between import and import type? Why does the distinction matter?

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryMedium

When (If Ever) Should You Use Namespaces?

Question

When is using a namespace actually the right call in modern TypeScript? Show the rare legitimate use cases.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryHard

Module Augmentation: Extending Third-Party Modules

Question

What is module augmentation in TypeScript, and when do you use it? Show the canonical pattern for extending an external library's types.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

Explore the full Namespaces and Modules material

Premium includes the complete lessons and implementation references. Free practice questions remain available without a subscription.

All course tracks & premium content
From basics to advanced masterclasses
Built for JS/TS developers like you
Real-world tips & common pitfalls
Upgrade to Premium