命名空间可以拆分,当命名空间代码量很大时,拆分可以提高可维护性:
// 拆分成第一块
namespace ns {
let a = 1;
}
// 拆分成第二块
namespace ns {
let b = 2;
}
但要注意,虽然 ns
被拆分成两个代码块了,但这两个代码块之间的成员无法互相访问:
namespace ns {
let a = 1;
}
namespace ns {
// 错误,error TS2339: Property 'a' does not exist on type 'typeof ns'
let b = a + 1;
}
要想访问被拆分的命名空间成员,必须用 export
导出需要被其他块访问的成员:
namespace ns {
export let a = 1;
}
namespace ns {
// 正确,a被export
let b = a + 1;
}
命名空间也可以被拆分到不同的文件中