JS Module Namespace
The Module Namespace Object
When you use the syntax:
JavaScript creates a modulenamespace object.
This is an immutable object that contains all the exported bindings from that module.
Example
The math module namespace object bundles all the exports (PI, add, multiply):export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
Import math_module.js into a namespace object:
// Now you can use the math namespace object:
let myPi = math.PI
let result1 = math.add(2, 3));
let result2 = math.multiply(2, 3));
Module Namespace Support
Module namespace support refers to the mechanism that allows you to import all exports from a moduleinto a singlenamespace object.
TheModule Namespace feature is a part of the ES Modules introduced inECMAScript 2015to help organize and access modules in a consistent way.
Module Namespace Features
| Feature | Description |
|---|---|
| Namespace | A special object containing all exports from a module |
| Syntax | import * asname frommodule |
| Purpose | Organize, access, and reference module exports safely |
| Read Only | You can access exports but not reassign them |
| Live Binding | If an exported value changes in the module, the namespace reflects that change automatically |
| Enumerable | Its properties are enumerable and correspond to named exports |
| Prototype | The namespace is a plain object with no prototype (Object.getPrototypeOf(math) === null). |
Related Syntax
Module Namespace Export
Module namespace export refers to exporting an entire imported module namespace object from another module.
Namespace Export
Normally, you import all of a module's exports into a module namespace object like this:
Example
let myPi = math.PI;
let result = math.add(2, 3);
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
With module namespace exports, you can re-export that entire namespace from your own module - without having to import it first:
Now, you can create a new module that re-exports this whole namespace:utilities.js
Note
The syntaxexport * as name from "module" was added inECMAScript 2020.
Syntax Overview
| Syntax | Result |
|---|---|
| export * from "module" | Re-export all named exports individually (not as a namespace) |
| export * as name from "module" | Re-export all exports grouped under a single namespace |
| export { name } from "module" | Re-export specific exports |
Aggregator Scripts
Anaggregator script is a script used only to import and re-export items from other modules.
Instead of filling your top module with many import statements, you can use a single aggregator script to do it all.

