python ruby-programming-language Smalltalk Vue.js Knockoutjs TypeScript JavaScript, OOPs JavaScript Angular 8,7,6,5,4 and 2 Interview Questions and Answers Angular 8,7,6,5,4 and 2 Interview Questions and Answers Angular 4 Angular 2 AngularJs 1.x NodeJs Perl Programming R Programming RequireJs Rust Programming Backbonejs closure programming language go-programming-language kotlin-programming-language
Named Internal Modules

TypeScript - Named Internal Modules

What’s an Internal Module?
You can define modules within your typescript files and all variables defined within the module are scoped to the module and removed from the global scope.

You can access the variable outside the module using the export keyword and also you can extend internal modules, share them across files, and reference them using the triple slash. Syntax - (///)

Named Internal Modules –

Internal modules are come in earlier version of the Typescript and it was basically used to logically group classes, interfaces, and functions into one unit and it can be export in another module.

Now this logically group named call “namespace” in latest version of TypeScript. So we can use namespace instead of internal modules in the TypeScript. As per me, this one is the best coding practice but don’t mind the internal modules are also supporting, if you want can use it.

Example using module -
module System.modules {

    //this function can be accessed from outside the module because using export.
    export function addNumbers(a: number, b: number): number {
        return a + b;
    }

    // this class can be accessed from outside the module because using export.
    export class ExportedClass {
        public subNumbers(a: number, b: number): number {
            return a - b;
          }
    }

    //this class can only be accessed from inside the module because not using export.
    class NotExportedClass {
        mulNumbers(a: number, b: number): number {
           return a * b;
        }

        divNumbers(a: number, b: number): number {           
            return a > 0 ? a / b : 0;
        }
    }
}

Example using namespace –

namespace System.namespaces {

    //this function can be accessed from outside the module because using export.
    export function addNumbers(a: number, b: number): number {
        return a + b;
    }

    // this class can be accessed from outside the module because using export.
    export class ExportedClass {
        public subNumbers(a: number, b: number): number {
            return a - b;
        }
    }

    //this class can only be accessed from inside the module because not using export.
    class NotExportedClass {
        mulNumbers(a: number, b: number): number {
            return a * b;
        }

        divNumbers(a: number, b: number): number {
            return a > 0 ? a / b : 0;
        }
    }
}

Stayed Informed – Learn Angular 2 with TypeScript

I hope you are enjoying with this post! Please share with you friends. Thank you!!
ANIL SINGH

Hi there! Welcome to my blog. My name is Anil Singh. I'm a author of this blog. For more detail about me, kindly refer to this link..
My Blogs - http://code-sample.com and http://code-sample.xyz
My Books - Interview Questions and Answers Books- Get Your Book in 15+ Digital Stores Worldwide..

You Might Also Like
www.code-sample.com/. Powered by Blogger.
ASK Questions