是否可以从2个不同的打字稿文件导出到同一模块中?
我有:
module a1 {
export module a2 {
export module Topic1 {
export class Type1 {
constructor(public id: string) { }
}
export let Entity = new Type1("entity");
}
}
}
module a1 {
module a2 {
module Topic1 {
// how do I export something into a1.a2.Topic1 ?
export let Relation = new a1.a2.Topic1.Type1("relation");
}
}
function test1() {
// this works:
let v1 = a1.a2.Topic1.Entity;
// this show an error:
// Property 'Relation' does not exist on type 'typeof Topic1'.
let v2 = a1.a2.Topic1.Relation;
}
}
我尝试了一些不同的方法,但无法让它发挥作用。
这里的想法是使用顶级模块来区分项目,以及实际项目模块和子模块的内部/子模块。在大型项目中使用打字稿时是否有最佳实践?感谢。
编辑1:更新评论以反映意图 - 导出到Topic1而不是其父级。
答案 0 :(得分:1)
您希望的简化示例:
module a1 {
export module a2 {
export module Topic1 {
// how do I export something into a1.a2 ?
}
}
}
简单回答:不会。除非您在a1.a2
,否则无法导出到a1.a2
。在你的情况下,你在a1.a2.Topic1
。
如何将某些内容导出到a1.a2.Topic1
请确保在a1
module a1 {
export module a2 { // export here
export module Topic1 { // export here
export const foo = 123;f // export here
}
}
}