如何在 TypeScript 中從 index 文件導入和導出命名空間、介面和類型?
我想要宣告一個模組並定義它的類型和介面,而不用重複自己——這樣我就可以定義一個類型,如果它是可以共享的東西,便能從其他地方再次使用它。
所以例如,如果我有一個名為 User 的模組,我想定義一個名為 User 的命名空間,並在其下定義一個名為 Address 的接口,然後在 Address 下定義一個或多個類型。
現在,地址類型是我可能會在其他模組中使用的東西——不僅僅是用於使用者,也可能用於訂單,例如。
所以我想過創建一個 Interface 目錄,並在這個目錄中添加一些文件,每個文件對應一個 Interface,然後將所有這些 Interface 導入到一個 index.ts 文件中,這樣就可以從應用的任何地方導入——實際上甚至可以從其他不屬於同一應用的包、模塊和服務中導入。
例如:
Interfaces
Address.ts
Contact.ts
Role.ts
index.ts
// index.ts
import Address from './Address'
import Contact from './Contact'
...etc
export default { Address, Contact }
但是這行不通。因為 TS 只幫助編寫程式碼,它不會像上面我提到的那樣將實際模組加入程式碼並導出,那種方法是針對實際模組的,而不僅僅是 Types 和 Interfaces!
那我該如何匯出和匯入 TS 物件(類型、介面、命名空間等)?
最佳做法是什麼?你能提供一個示範結構嗎?
答案#1
像這樣的東西...
我在這裡做了一個 Code Sandbox,它只是將一些數據打印到控制台,以證明類型導入是有效的。這是基於有一個 types.ts 文件,其中包含類型,並從那裡將它們導入到 index.ts,因此你確實可以在 Typescript 中從另一個文件導入類型。
