В TypeScript у меня есть класс, объединенный с пространством имен (foo.ts):
export class C {
foo(): Foo { ... }
}
export namespace C {
type Foo = ...
...
}
При подготовке к использованию inversify я хочу поместить интерфейс для этого класса в другой файл.Я пробовал что-то вроде этого:
(interfaces.ts)
export interface IC {
foo (): C.Foo
...
}
export namespace C {
type Foo = ...
}
(foo.ts)
import { C, IC } from './interfaces'
export class C {
foo (): Foo { ... }
}
Однако компиляция foo.ts выдает мне ошибку: «Отдельные декларации в объединенной декларации« C »должны быть все экспортированы или все локальные».Я предполагаю, что это означает, что я импортировал пространство имен, но я не экспортировал его (хотя я ожидаю, что экспорт класса должен экспортировать объединенную сущность).Как я могу обойти эту проблему?