TypeScript namespace 名稱空間
阿新 • • 發佈:2020-08-10
名稱空間一個最明確的目的就是解決重名問題,其定義了識別符號的可見範圍,一個識別符號可在多個名字空間中定義,它在不同名字空間中的含義是互不相干的。
這樣,在一個新的名字空間中可定義任何識別符號,它們不會與任何已有的識別符號發生衝突,因為已有的定義都處於其他名字空間中。
一、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 檔案