我可以将所有进口声明隐藏到单独的文件中吗?

Can I hide all import declaration into separate file?

我有一个包含大量导入的大型 TypeScript 模块文件。我可以将其中的一些导入隐藏到单独的 .ts 文件中,该文件只包含导入声明吗?

所以我现在有类似的东西

import { Test1 } from './test/test/test.component';
import { Test2 } from './test1/test1/test1.component';
import { Test3 } from './test2/test2/test2.component';
import { Test4 } from './test/test3/test3.component';
...

所以我想要这样的东西

import * from './allDeclarationsFile'

是的,你可以,像这样声明你的 allDeclarationsFile.ts

export * from './test/test/test.component';
export * from './test1/test1/test1.component';
export * from './test2/test2/test2.component';
export * from './test/test3/test3.component';

export {Test1} from './test/test/test.component';
//...

或者如果你想重命名一些东西:

import * as TC from './test/test/test.component';
export {TC as SomethingElse};
//...

确实可以,而且比您预期的要容易,但需要注意的是,如果您想一次导入它们,则必须通过共享命名空间对象访问它们。

test/index

export { Test1 } from './test/test/test.component';
export { Test2 } from './test1/test1/test1.component';
export { Test3 } from './test2/test2/test2.component';
export { Test4 } from './test/test3/test3.component';

这被称为 re-export 模式。

您现在可以将它们导入为

import * as tests from './test/index';

或有选择地作为

import { Test1, Test2 } from './test/index';