Skip to main content

命名空间

模块

  • 内部模块用于组织代码,避免命名冲突
  • 任何包含顶级 import 或者 export 的文件都被当场一个模块,否则内容被视为全局可见

命名空间

  • 通过 namespace 关键字定义
  • 命名空间内的类默认私有
namespace A {
export const a = 1
}

命名空间嵌套

namespace A {
export namespace C {
export const D = 2
}
}

命名空间抽离

export namespace B {
export const a = 3
}
import { B } from './index2'
namespace A {
export namespace C {
export const D = 2
}
}
console.log(A.C.D, B)

命名空间简化

namespace A {
export namespace C {
export const D = 2
}
}
import T = A.C
console.log(T.D)

重名命名空间合并

namespace A {
export const a = 1
}
namespace A {
export const b = 2
}

相当于

namespace A {
export const a = 1
export const b = 2
}