我在一个项目上工作,我需要为两个不同的Java库导出输入(我有我的理由),其类层次结构如此。
libName
`-namespace1
`-Class1 // full class Name: (libName.namespace1.Class1)
-Class2 // full class Name: (libName.namespace1.Class2)
另一个:
org
`-libName
`namespace123
`-Class1 // full class Name: (org.libName.namespace123)
`public method1(param0: libName.namespace1.Class1): void
base.d.ts:
declare module libName {
export module namespace1 {
export class Class1 {
/* omitted for brevity */
}
export class Class2 {
/* omitted for brevity */
}
}
}
declare module org {
export module libName {
export class Class1 {
public method1(param0: libName.namespace1.Class1): void
}
}
}
在这种情况下,尝试编译上面的内容将导致error TS2305: Module 'org.libName' has no exported member 'namespace1'
,因为TSC假设我打算使用在同一模块中声明的模块。
有没有办法解决这个限制?谢谢!
答案 0 :(得分:0)
您可以将它们包装在一个共同的父级中:
declare module wrapper {
export module libName {
export module namespace1 {
export class Class1 {
/* omitted for brevity */
}
export class Class2 {
/* omitted for brevity */
}
}
}
export module org {
export module libName {
export class Class1 {
public method1(param0: wrapper.libName.namespace1.Class1): void
}
}
}
}