简化Angular 2桶

时间:2016-06-13 07:43:35

标签: typescript angular

我有一个文件夹,其中包含许多在整个应用程序中使用(导入)的服务和模型 - 在我的例子中,这些是API的客户端和数据模型。

我正在寻求简化调用代码的导入,所以我正在考虑创建一个barrel。我还想提供类似于Angular HTTP_PROVIDERS的常量,以便更容易使用Angular注册导出的服务。

我目前的做法是:

  1. 从文件中导入符号
  2. 重新导出,因此可以单独导入
  3. 将其添加到适当的数组常量,例如API_SERVICES,因此可以使用Angular注册
  4. 这导致每个导出符号有三行代码。这似乎过于冗长,我担心列表会不同步。

    import { LanguageApi } from "./language-api.service";
    export { /*... ,*/ LanguageApi /*, ...*/ };
    export const API_SERVICES: any[] = [ /*... ,*/ LanguageApi /*, ...*/ ];
    

    我想让它更干。有没有办法缩短它?也许我可以以某种方式重用API_SERVICES数组将其内容导出为单个符号?

1 个答案:

答案 0 :(得分:0)

您可以单独创建一个带有导出的桶,并为常量创建另一个文件...例如

// index.ts
export { LanguageApi } from "./language-api.service";
export * from "./some-other.service";

// providers.ts
import { LanguageApi } from "./index";
export const API_SERVICES: any[] = [ /*... ,*/ LanguageApi /*, ...*/ ];