TypeScript 中命名空间使用 namespace 来定义,语法格式如下:
namespace SomeNameSpaceName {export interface ISomeInterfaceName {}export class SomeClassName {}}
以上定义了一个命名空间 SomeNameSpaceName,如果我们需要在外部可以调用 SomeNameSpaceName 中的类和接口,则需要在类和接口添加 export 关键字。
以下实例演示了命名空间的使用,定义在不同文件中:
//a.tsexport namespace A {export class People {}export const height: number = 180;export function main(): void {}}
//b.tsimport { A } from "./a";console.log(A.People);
嵌套
可以在另一个命名空间中定义一个命名空间:
namespace namespace_name1 {export namespace namespace_name2 {export class class_name {}}}
命名空间与模块
命名空间:将具有相似功能的代码都归一到同一个空间下进行管理,方便其他代码引用,更多的是侧重代码的复用。
模块:一个完整功能的封装,对外提供的是一个具有完整功能的功能包,需要显式引用。一个模块里可能会有多个命名空间。
