天天看點

關于 Angular 項目裡的 index.ts

如下圖所示:如果我需要在檔案夾 A 裡的某檔案,通路檔案夾 B 裡的某服務,而檔案夾 A 和 B 分别是兩個不同 module 的實作,我需要在檔案夾 A 的檔案裡,通過導入檔案夾 B 裡定義的 index 檔案,來導入其暴露的服務,下面的例子裡導入的是 BrowserService.

關于 Angular 項目裡的 index.ts

Jerryindex.ts 檔案的内容:

關于 Angular 項目裡的 index.ts

如果 browser 檔案下定義的是符合 Angular 命名規範的 index.ts 檔案,則檔案夾A裡的導入語句,可以不顯式包含 index.ts 這個檔案名,簡寫成:

關于 Angular 項目裡的 index.ts

實際上,這些 index.ts 檔案,稱為 barrel file,在這個StackOverflow thread裡有讨論。

桶是一種将多個子產品的導出彙總到單個便利子產品的方法。 桶本身是一個子產品檔案,用于重新導出其他子產品的標明導出。

關于 Angular 項目裡的 index.ts

如果沒有桶,消費者将需要三個導入語句:

關于 Angular 項目裡的 index.ts

我們可以将一個桶添加到導出所有這些項目的 heros 檔案夾(按慣例稱為索引):

關于 Angular 項目裡的 index.ts

現在消費者可以從桶中進口它需要的東西。

關于 Angular 項目裡的 index.ts

繼續閱讀