2016-06-13 2 views
1

私はアプリケーション全体で使用(インポート)された多くのサービスとモデルを持つフォルダを持っています。私の場合はAPIとデータモデルのクライアントです。角2つのバレルの簡略化

呼び出しコードのインポートを簡略化するため、barrelを作成します。また、AngularのHTTP_PROVIDERSに似た定数を提供して、エクスポートされたサービスをAngularに簡単に登録できるようにしたいと考えています。

私のアプローチは、現在、次のとおりです。

  1. インポートシンボルそのファイルから
  2. 再輸出ば、それは個別に
  3. 例えば、適切な配列定数に追加し、インポートすることができますので、 API_SERVICESですので、角で登録することができます

この結果、エクスポートされたシンボルごとに3行のコードが生成されます。これはあまりにも冗長で、リストが同期しなくなるのではないかと心配しています。

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

私はそれをもっとドライにしたいと思います。それを短くする方法はありますか?おそらく、私は何とかAPI_SERVICESアレイを再利用してその内容を個々のシンボルとしてエクスポートできますか?あなたが唯一の輸出とバレルを作成して、定数の別のファイルを作る分けることができ

+0

私が推測するが、それはあなたがそれを行う方法です... https://github.com/angular /angular/blob/master/modules/%40angular/http/http.ts – rinukkusu

答えて

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 /*, ...*/ ]; 
+1

コメントありがとうございます。これは、2つのファイル間で同じ量のコードを分割するだけです。見た目によっては、おそらくそれより優れている可能性があります。しかし、私が探しているのは、配列と 'export'の両方で、各サービスを2回リストしない方法です。理想的には、何らかの形でエクスポートで 'API_SERVICES'配列の内容を使用します。 –

+0

私はそれがあまり改善されていないことを知っていますが、バンドルから個々のファイルからインポートする方が簡単です。私はモジュールの配列をエクスポートする方法を認識していない。彼らはまだjs/tsの世界で新しいです(: – Sasxa