提问人:bp99 提问时间:3/17/2023 更新时间:3/18/2023 访问量:178
重新导出类型,使其不再位于命名空间下
Re-export types so that they are no longer under a namespace
问:
我有一个自动生成的 Typescript 文件,其结构如下:types.d.ts
declare namespace Definitions {
export interface Foo { ... }
export interface Bar { ... }
}
由于此文件已生成,因此我不想对其进行编辑。不幸的是,生成器工具创建了这些命名空间,它不在我的控制范围内。
我的最终目标是能够使用接口,而不必使用命名空间前缀。目前,在另一个导入带有定义的包中,我可以做到Foo
Bar
Definitions
import { Definitions } from 'my-package-with-the-defs'
const foo: Definitions.Foo = { ... }
但我想要的是
import { Foo } from 'my-package-with-the-defs'
const foo: Foo = { ... }
我知道我可以从 重新导出东西,例如my-package-with-the-defs
import { Definitions } from './types'
export type Foo = Definitions.Foo
在一些主()文件中,这样我就可以随心所欲地使用。但是命名空间包含多个接口,我想将它们全部重新导出到“全局”命名空间中。index.ts
Foo
Definitions
有没有办法做到这一点,既不单独添加每个重新导出文件,也不自动生成这个重新导出文件?
答:
2赞
jsejcksn
3/18/2023
#1
有没有办法做到这一点,既不单独添加每个重新导出文件,也不自动生成这个重新导出文件?
目前,没有。其他选项包括:
- 提交 PR 以更改上游导出的类型
- 使用编译器 API 识别所需的命名空间类型并以编程方式重新导出它们
上一个:声明文件中的枚举命名空间?
下一个:如何在不同的文件中使用结构体
评论