In TypeScript, modules are a way to organize code and encapsulate functionality. There are two types of modules: internal modules (also known as namespaces) and external modules (also known as modules).
Internal Modules (Namespaces):
Internal modules, known as namespaces, provide a way to organize code within a single global scope. They help in avoiding naming conflicts by encapsulating code within a named container.
Syntax:
namespace MyNamespace {
// code within the namespace
}
Example: Here, a namespace named MathOperations
is created to group mathematical functions like addition and subtraction. The functions are then accessed within the namespace, showcasing the encapsulation provided by internal modules.
namespace MathOperations { export function add(x: number, y: number): number {
return x + y;
}
export function subtract(x: number, y: number): number {
return x - y;
}
} // Usage let resultAdd = MathOperations.add(5, 3); let resultSubtract = MathOperations.subtract(8, 2); console.log(resultAdd); // Output: 8
console.log(resultSubtract); // Output: 6
|
Output:
8
6
External Modules
External modules allow you to organize code into separate files. Each file is treated as a separate module, and you can explicitly export and import functionalities between these modules. It is also known as the ES6 module.
Syntax: File 1 (moduleA.ts):
// moduleA.ts
export const variableA = 10;
export function functionA(): void {
// code
}
File 2 (moduleB.ts):
// moduleB.ts
import { variableA, functionA } from './moduleA';
// code using variableA and functionA
Example: Here, moduleA.ts
defines a namespace MathOperations
, and moduleB.ts
imports and uses the functionalities from moduleA
.
// moduleA.ts export namespace MathOperations { export function add(x: number, y: number): number {
return x + y;
}
export function subtract(x: number, y: number): number {
return x - y;
}
} |
// moduleB.ts import { MathOperations } from './moduleA' ;
// Usage let resultAdd = MathOperations.add(5, 3); let resultSubtract = MathOperations.subtract(8, 2); console.log(resultAdd); // Output: 8
console.log(resultSubtract); // Output: 6
|
Output:
8
6