w3resource

JavaScript Modules using Namespace Imports


Namespace Import:

Write a JavaScript program that imports an entire module as a namespace and access its properties.

Solution 1: Using Namespace Import for Utility Functions

Code:

File: mathUtils.js

This file contains multiple utility functions exported individually..

// mathUtils.js
// Exporting multiple utility functions
export const add = (a, b) => a + b; // Adds two numbers
export const subtract = (a, b) => a - b; // Subtracts two numbers
export const multiply = (a, b) => a * b; // Multiplies two numbers
export const divide = (a, b) => a / b; // Divides two numbers

File: main.js

This file demonstrates importing the entire module as a namespace.

// main.js  
// Importing the entire module as a namespace
import * as MathUtils from './mathUtils.js';

// Accessing properties of the namespace
console.log(MathUtils.add(10, 5)); // Logs 15
console.log(MathUtils.multiply(4, 3)); // Logs 12

Output:

15
12

Explanation:

  • mathUtils.js exports four utility functions using named exports.
  • In main.js, the entire module is imported as a namespace MathUtils.
  • The namespace provides access to all exported functions, which can be used with the MathUtils prefix.

Solution-2: Using Namespace Import for Constants and Functions

Code:

File: constants.js

This file contains constants and utility functions exported individually.

// constants.js
// Exporting constants
export const PI = 3.14159;
export const E = 2.718;

// Exporting utility functions
export const circleArea = (radius) => PI * radius * radius; // Calculates area of a circle
export const exponential = (base, power) => Math.pow(base, power); // Calculates exponentiation

File: main.js

This file demonstrates importing the entire module as a namespace.

// main.js  
// Importing the entire module as a namespace
import * as Constants from './constants.js';

// Accessing constants and functions from the namespace
console.log(Constants.PI); // Logs 3.14159
console.log(Constants.circleArea(5)); // Logs 78.53975 (area of a circle with radius 5)
console.log(Constants.exponential(2, 3)); // Logs 8 (2 raised to the power 3)  

Output:

3.14159
78.53975
8

Explanation:

  • constants.js exports constants (PI and E) and utility functions (circleArea and exponential).
  • In main.js, the entire module is imported as a namespace Constants.
  • The namespace is used to access both constants and utility functions.

For more Practice: Solve these Related Problems:

  • Write a JavaScript program that imports an entire module as a namespace and then calls various functions from that namespace.
  • Write a JavaScript program that iterates over the keys of a namespace import and logs each function name and its result.
  • Write a JavaScript program that uses a namespace import to access constants and functions from a utility module.
  • Write a JavaScript program that demonstrates modifying a namespace import's properties and then using them.

Go to:


PREV : Default Import Alias.
NEXT : Circular Dependency.

Improve this sample solution and post your code through Disqus

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.