定义
TypeScript 中命名空间使用 namespace
来定义,语法格式如下:
1 | namespace SomeNameSpaceName { |
以上定义了一个命名空间 SomeNameSpaceName
,如果我们需要在外部可以调用 SomeNameSpaceName 中的类和接口,则需要在类和接口添加 export
关键字。
要在另外一个命名空间调用语法格式为:
1 | SomeNameSpaceName.SomeClassName; |
如果一个命名空间在一个单独的 TypeScript 文件中,则应使用三斜杠 ///
引用它,语法格式如下:
1 | /// <reference path = "SomeFileName.ts" /> |
实例:
IShape.ts 文件代码:
1 | namespace Drawing { |
Circle.ts 文件代码:
1 | /// <reference path = "IShape.ts" /> |
Triangle.ts 文件代码:
1 | /// <reference path = "IShape.ts" /> |
TestShape.ts 文件代码:
1 | /// <reference path = "IShape.ts" /> |
使用 tsc 命令编译以上代码:
1 | tsc --out app.js TestShape.ts |
使用 node 命令查看输出结果为:
1 | $ node app.js |
嵌套命名空间
名空间支持嵌套,可以将命名空间定义在另外一个命名空间里头。
1 | namespace namespace_name1 { |
成员的访问使用点号 .
来实现,如下实例:
Invoice.ts 文件代码:
1 | namespace Runoob { |
InvoiceTest.ts 文件代码:
1 | /// <reference path = "Invoice.ts" /> |
使用 tsc
命令编译以上代码:
1 | tsc --out app.js InvoiceTest.ts |
使用 node 命令查看输出结果为:
1 | $ node app.js |