TypeScript 命名空间
命名空间一个最明确的目的就是解决重名问题。
命名空间定义了标识符的可见范围,一个标识符可在多个命名空间中定义,在不同命名空间中的同一个标识是互不相干的。
namesapce
TypeScript 中命名空间使用 namespace 来定义,语法格式如下:
代码语言:javascript复制namespace 空间名称{
export interface ISomeInterfaceName { }
export class SomeClassName { }
}
命名空间实现步骤
1 创建如下目录结构 :
代码语言:javascript复制|_ 项目目录
|_ SpaceA
|_ dog.ts
|_ SpaceB
|_ dog.ts
|_ animal.ts
|_ test.ts
2 animal.ts 源码
代码语言:javascript复制interface Animal{
eat():void;
}
3 SpaceA/dog.ts 源码
代码语言:javascript复制/// <reference path = "../animal.ts" />
namespace SpaceA {
export class Dog implements Animal{
eat():void{
console.log("SpaceA dog eat ...");
}
}
}
4 SpaceB/dog.ts 源码
代码语言:javascript复制/// <reference path = "../animal.ts" />
namespace SpaceB {
export class Dog implements Animal{
eat():void{
console.log("SpaceB dog eat ...");
}
}
}
5 test.ts 源码
代码语言:javascript复制/// <reference path = "./SpaceA/dog.ts" />
/// <reference path = "./SpaceB/dog.ts" />
var dogA = new SpaceA.Dog();
dogA.eat();
var dogB = new SpaceB.Dog();
dogB.eat();
将多个空间编译为一个 js 文件
代码语言:javascript复制tsc --outFile app.js .test.ts
运行查看结果
代码语言:javascript复制node .app.js