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
,导入目录中的所有文件,并在每次添加/删除文件时运行该脚本。