使用命名空间,避免变量名,函数名,类名重复。

一、使用命名空间定义变量

  1. namespace A{
  2. export var a =10;
  3. }
  4. namespace B{
  5. export var a = 20;
  6. }
  7. console.log(A.a)
  8. console.log(B.a)

二、使用命名空间定义类

  1. namespace A{
  2. export class Person{
  3. name:string|undefined;
  4. age:number|undefined;
  5. constructor(name:string,age:number){
  6. this.name = name;
  7. this.age = age;
  8. }
  9. }
  10. }
  11. namespace B{
  12. export class Person{
  13. name:string|undefined;
  14. age:number|undefined;
  15. constructor(name:string,age:number){
  16. this.name = name;
  17. this.age = age;
  18. }
  19. }
  20. }
  21. var cheng = new A.Person("cheng",18);
  22. var jiang = new B.Person("jiang",20);
  23. console.log(cheng);
  24. 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);