在TypeScript中,我有一个与命名空间合并的类 (foo.ts(:
export class C {
foo(): Foo { ... }
}
export namespace C {
type Foo = ...
...
}
为了准备使用 inversify,我想将此类的接口放在不同的文件中。我尝试了这样的事情:
(接口.ts(
export interface IC {
foo (): C.Foo
...
}
export namespace C {
type Foo = ...
}
(福.茨(
import { C, IC } from './interfaces'
export class C {
foo (): Foo { ... }
}
但是,编译 foo.ts 会给我一个错误:"合并声明'C'中的单个声明必须全部导出或全部导出为本地声明。我想这意味着我已经导入了命名空间,但我还没有导出它(尽管我希望导出类应该导出合并的实体(。如何解决此问题?
啊哈 - 写下我的问题让我得到了答案。 foo.ts可以更改为:
import { C, IC } from './interfaces'
class C {
foo (): Foo { ... }
}
export { C }
需要单独导出似乎很奇怪,但很高兴知道它有效。