Namespaces are a way to organize and group our code into logical modules to avoid name collisions between different parts of our program.
A namespace in Typescript encapsulates variables, functions, classes, and other elements in a container. This allows us to group and organize our code, avoiding conflicts and improving its readability and maintainability.
To define a namespace in Typescript, we use the namespace
keyword followed by the name we want to assign to the namespace. For example:
namespace MyNamespace {
export function greet() {
console.log("Hello from MyNamespace!");
}
}
In this example,
- We created a namespace called
MyNamespace
- It contains a function
greet
. - The
export
declaration allows the function to be accessible outside the namespace.
Using namespaces
Once we have defined a namespace, we can use it in other parts of our program. To access the elements within a namespace, we use the NamespaceName.ElementName
syntax. For example:
MyNamespace.greet();
In this case, we are calling the function greet
that is located within the namespace MyNamespace
.
Nesting namespaces
In Typescript, it is also possible to nest namespaces within other namespaces. This allows us to further organize our code and avoid name collisions. For example:
namespace MyNamespace {
export namespace SubNamespace {
export function sayGoodbye() {
console.log("Goodbye from SubNamespace!");
}
}
}
In this case,
- We have nested a namespace called
SubNamespace
inside the namespaceMyNamespace
- The function
sayGoodbye
is located within the namespaceSubNamespace
- To access this function, we use the syntax
MyNamespace.SubNamespace.sayGoodbye()