【发布时间】:2019-11-17 06:59:56
【问题描述】:
我有一个库,里面有很多 merged declarations,比如:
export class Foo {...}
export namespace Foo {
export class Bar {...}
...
}
export default Foo
合并的命名空间通常定义内部类、特定于类的错误等。
我想在我自己的库中重新导出其中的一些声明。我目前正在尝试这样做:
import FooExt from './library.js'
export namespace Baz {
export type Foo = FooExt
export const Foo = FooExt
...
}
这成功地导出了Foo 命名空间的值,但不是它的类型;即:
import {Baz} from './mylib.js'
let x: Baz.Foo.Bar // Error: Namespace '".../mylib".Baz' has no exported member 'Foo'.
x = new Baz.Foo.Bar // Ok
if (x instanceof Baz.Foo.Bar) { // Ok
// do something
}
有没有办法导出导入的合并命名空间并保留其类型?
据我所知,这与this question 和this question 的情况不同。
【问题讨论】:
标签: typescript