Visit complete TypeScript roadmap

← Back to Topics List

Namespace Augmentation

In TypeScript, namespace augmentation is a way to extend or modify existing namespaces. This is useful when you want to add new functionality to existing namespaces or to fix missing or incorrect declarations in third-party libraries.

Here’s an example of how you can use namespace augmentation in TypeScript:

// myModule.d.ts
declare namespace MyModule {
  export interface MyModule {
    newFunction(): void;

// main.ts
/// <reference path="myModule.d.ts" />
namespace MyModule {
  export class MyModule {
    public newFunction() {
      console.log('I am a new function in MyModule!');

const obj = new MyModule.MyModule();
obj.newFunction(); // Output: "I am a new function in MyModule!"

In this example, we use namespace augmentation to add a new function “newFunction” to the “MyModule” namespace. This is done in the declaration file myModule.d.ts by declaring a new interface “MyModule” within the “MyModule” namespace and adding the “newFunction” function to it.

Learn more from the following links:

Community is the 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

Roadmaps Best Practices Guides Videos Store YouTube by Kamran Ahmed

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© · FAQs · Terms · Privacy


The leading DevOps resource for Kubernetes, cloud-native computing, and the latest in at-scale development, deployment, and management.