0
0
Typescriptprogramming~5 mins

Namespace declaration in Typescript

Choose your learning style9 modes available
Introduction

A namespace helps you group related code together under one name. It keeps your code organized and avoids name clashes.

When you want to group related functions, classes, or variables together.
When you want to avoid conflicts between names in large projects.
When you want to organize code in a way that is easy to understand.
When you want to split code into logical sections without using modules.
When you want to share code across different parts of your program safely.
Syntax
Typescript
namespace NamespaceName {
  // code here
}

The namespace keyword starts the block.

All code inside belongs to that namespace.

Examples
This creates a namespace called Animals with a class Dog inside it.
Typescript
namespace Animals {
  export class Dog {
    bark() {
      console.log('Woof!');
    }
  }
}
This namespace MathUtils contains a function add that adds two numbers.
Typescript
namespace MathUtils {
  export function add(a: number, b: number): number {
    return a + b;
  }
}
This namespace Greetings has a constant and a function to greet someone.
Typescript
namespace Greetings {
  export const hello = 'Hello';
  export function greet(name: string) {
    console.log(`${hello}, ${name}!`);
  }
}
Sample Program

This program defines a namespace Vehicles with a class Car. Then it creates a car and calls its drive method.

Typescript
namespace Vehicles {
  export class Car {
    drive() {
      console.log('Driving a car');
    }
  }
}

const myCar = new Vehicles.Car();
myCar.drive();
OutputSuccess
Important Notes

Use export inside namespaces to make code accessible outside.

Namespaces are mostly used in older TypeScript code; modern projects often use modules instead.

Namespaces help avoid name conflicts by grouping code under a unique name.

Summary

Namespaces group related code under one name.

Use export to share code outside the namespace.

Namespaces help keep code organized and avoid name clashes.