Phân biệt Module và Namespace?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
3.795 lượt xem

Module dành cho các external package và Namespace dành cho các internal package.

Trên thực tế, từ khóa Module đã được thay thế bằng từ khóa Namespace. Namespace đơn giản là đặt tên các đối tượng JavaScript trong global namespace. Module có thể chứa cả mã và khai báo. Sự khác biệt chính là các module khai báo các dependency của chúng.

///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; } } }
{{login.error}}