1. 程式人生 > 實用技巧 >TypeScript namespace 名稱空間

TypeScript namespace 名稱空間

名稱空間一個最明確的目的就是解決重名問題,其定義了識別符號的可見範圍,一個識別符號可在多個名字空間中定義,它在不同名字空間中的含義是互不相干的。

這樣,在一個新的名字空間中可定義任何識別符號,它們不會與任何已有的識別符號發生衝突,因為已有的定義都處於其他名字空間中。

一、TypeScript 名稱空間

TypeScript 中使用namespace來定義名稱空間,語法格式如下:

namespace SomeNameSpaceName { 
  export interface ISomeInterfaceName {      }  
  export class SomeClassName {      }  
}

以上定義了一個名稱空間 SomeNameSpaceName,如果我們需要在外部可以呼叫 SomeNameSpaceName 中的類和介面,則需要在類和介面新增export關鍵字

在另外一個名稱空間呼叫語法格式為:

SomeNameSpaceName.SomeClassName;

如果一個名稱空間在一個單獨的 TypeScript 檔案中,則應使用三斜槓 /// 引用它,語法格式如下:

/// <reference path = "SomeFileName.ts" />

舉個例子:

page.ts 檔案:

index.html 檔案:

二、巢狀名稱空間

名稱空間支援巢狀,即可以將名稱空間定義在另外一個名稱空間中

namespace namespace_name1 { 
  export namespace namespace_name2 {
      export class class_name {    } 
  } 
}

成員的訪問使用點號.來實現,如下例項:

page1.ts 檔案

page2.ts 檔案