繁体   English   中英

导出目录中的所有接口以获得更好的导入语句/自动填充

[英]Export all interfaces in directory for better import statements / autofill

优雅地导出目录中所有接口/枚举的最佳方法是什么?

案件

采取以下措施:

import { TimeFrame } from '@types/shared/TimeFrame'
import { Address } from '@types/shared/Address'
import { Contact } from '@types/shared/Contact'

import { ApiBaseParameters } from '@types/api/BaseParams'
import { MailApiQueryParameters } from '@types/api/MailApiQueryParameters'
import { MailApiBodyParameters } from '@types/api/MailApiBodyParameters'
import { MailApiResponse } from '@types/api/MailApiResponse'
import ...

import { StateEnums } from '@enums/States'
import { CountryEnums } from '@enums/CountryEnums'

我们可以让它更容易使用吗? 例如...

import * as Type from '@types'
import * as Enum from '@enums'

or

import { 
 TimeFrame, Address, Contact,
 ApiBaseParameters,
 MailApiQueryParameters, MailApiBodyParameters, MailApiResponse,
 ...
} from '@types'
import { StateEnums, CountryEnums } from '@enums'

每个 .ts 文件包含类似

interface TimeFrame {
 start_time: string
 end_time: string
}
export { TimeFrame }

问题

我们的接口正在快速增长,需要花费太多时间来追踪所包含的内容以及在哪里可以找到所有接口/枚举。

最终,这可能会成为一个包,我们希望这样当另一个开发人员安装包时,他们可以很容易地看到包含的所有接口。

我知道可以在每个目录中添加一个 index.ts 文件, export * from './fileName但是你必须希望所有贡献者记得对每个文件都这样做。

有没有更好的方法来解决这个问题? 是否可以自动或以编程方式创建一个 index.ts 文件,将目录中的所有导出导出到...

  • 精简其他文件中的导入语句。
  • 在已经存在的情况下减少其他人编写自己的界面的工作量
  • 也许获得一些自动填充选项,例如Type.Ma....然后查看所有以“Ma”开头的类型?

有一些库可以自动生成 index.ts 文件。 并允许您配置它们。 Barrelsby一样, Create-ts-index Create-ts-index 也有一个库,允许您以编程方式配置它。

你可以用它们做的是添加一个后期构建步骤。 使用他们的 CLI 或 API 生成 index.ts 文件。

  • 在已经存在的情况下减少其他人编写自己的界面的工作量

  • 也许获得一些自动填充选项,例如 Type.Ma.... 然后查看所有以“Ma”开头的类型?

对于那些您可能正在寻找 IDE 插件的人。 一些 jetBrains 产品(Webstorm、IntelliJ 和 Resharper for Visual Studio)已经做了这些事情。

对于建议部分 Visual Studio Code 有自动导入插件。 当你键入一个Type表明您现有的类型中,当你选择汽车进口它。 还有一堆类似的插件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM