typescript namespace命名空间

147 阅读1分钟

在工作中无法避免全局变量造成的污染,TypeScript提供了namespace 避免这个问题出现 namespace:使用方法有:嵌套、抽离、导出、简化、合并

export namespace A {
  export const a = false;
}
//支持抽离
import {A} from './namespace'
import a = A.a
console.log(A.a);
//支持简化
console.log(a);
//通过export关键字进行导出才能访问
namespace A {
  export const a = 1;
}
console.log(A.a);
//支持多层嵌套
namespace A {
  export namespace B {
    export const b = 1;
  }
}
// console.log(A.B.b);
//支持合并
namespace A {
  export const a = false;
}
namespace A {
  export const b = 1;
}
console.log(A.b, A.a);

使用场景:跨端的项目:H5 Android ios 小程序等等

namespace ios {
  export const pushNotification = (
    notification: Notification,
    number: number
  ) => {};
}
namespace android {
  export const pushNotification = (notification: Notification) => {};
  export const callPhone = (phone: string) => {};
}