使用命名空间,避免变量名,函数名,类名重复。
一、使用命名空间定义变量
namespace A{ export var a =10;}namespace B{ export var a = 20;}console.log(A.a)console.log(B.a)
二、使用命名空间定义类
namespace A{ export class Person{ name:string|undefined; age:number|undefined; constructor(name:string,age:number){ this.name = name; this.age = age; } }}namespace B{ export class Person{ name:string|undefined; age:number|undefined; constructor(name:string,age:number){ this.name = name; this.age = age; } }}var cheng = new A.Person("cheng",18);var jiang = new B.Person("jiang",20);console.log(cheng);console.log(jiang)
三、命名空间模块化
module/db.ts
export namespace A{
export class Person{
name:string|undefined;
age:number|undefined;
constructor(name:string,age:number){
this.name = name;
this.age = age;
}
}
}
import {A} from './modules/db';
var cheng = new A.Person("cheng",20);