TypeScript:我可以导入一个文件夹而不必写一个index.ts文件吗?

如果一个项目的大多数目录包含不超过2-3个TypeScript文件,并且在导入其他地方的包含目录时应该可以访问它们的所有导出,则会导致大量的index.ts文件具有可预测的内容。

目录: my-component

 my-component-config.ts my-component.ts index.ts 

index.ts包含什么? 当然,它包含

 export * from "./my-component-config" export * from "./my-component" 

这是显而易见的。

对于10个组件目录,这意味着:10 index.ts包含100%冗余信息的index.ts文件。

我怎样才能使TypeScript(/节点)隐式创buildindex.ts文件,不需要存储在硬盘上?

组件在TypeScript&node.js中不是一个明确定义的概念,但是模块是。

一般来说,模块是一个源文件,让我们忽略例外。 因此,通过为每个目录创buildindex.ts文件,您将生成仅聚合每个文件/模块的façade模块。 如果你所要做的只是把你的源文件组织成逻辑组件,你不需要每个目录的外观,你可以简单地导入每个文件而不是一个目录。

在更高层次上,如果你有一个包含多个不同目录的包,它可以在包级别有一个index.ts外观。 该文件将只导出一次文件/模块,不需要每个目录的index.ts 。 所以这可能看起来像(假设每个都是.ts文件):

 export * from './IntStream'; export * from './misc/Interval'; export * from './misc/IntervalSet'; export * from './Lexer'; ... 

我不认为有没有办法在没有索引文件的TS中导入目录

如果没有,请检查这些问题

如何从TypeScript中的目录中导入所有模块?

Typescript 1.8模块:从文件夹导入所有文件

我认为最好的方法是编写一个脚本来生成index.ts ,导入目录中的所有文件,并在每次添加/删除文件时运行该脚本。