2016-11-20 101 views
0

使用TypeScript 2.0.10,我想將我的「模型」模塊在單獨的文件中合併成一個單一的定義。將單個文件模塊合併到單個模塊中?

/lib/models 
     |-- model-a.ts 
     |-- model-b.ts 
     |-- model-c.ts 
     |-- models.ts 

我必須導入此使用相對路徑,例如:import {ModelA} from "../../lib/models/model-a

我想導入這樣的,而不是:`進口{} MODELA從「模型」;

我已經聚集的所有型號爲models.ts

/lib/models/models.ts

declare module models { 
    export { ModelA } from "./model-a"; 
    export { ModelB } from "./model-b"; 
    export { ModelC } from "./model-c"; 
} 

我使用SystemJS所以我能夠做到這一點:

paths: { 
    "*": "dist/*", 
    "models": "dist/models/models", 
    "services": "dist/services/*", 
    // ... 
} 

目前,編譯將失敗,因爲TypeScript不知道如何找到models/*,但這個工作罰款在瀏覽器sinve我有SystemJS路徑配置。有沒有在tsconfig中設置相同類型映射的方法?

編輯重寫了這一堆。

回答

0

Disclaumer:這不使用模塊!(但我認爲你仍然達到同樣的效果)。

我還沒有嘗試過這與系統JS,但這應該使打字稿高興。

型號/ index.ts

import { ModelA } from './model-a'; 
import { ModelB } from './model-c'; 

export { 
    ModelA, 
    ModelB 
}; 

某處,else.ts

import { ModelA, ModelB } from './models'; 
+1

感謝。我仍然需要使用相對路徑(例如'../../ lib/models')。我真的希望簡化這一點,因爲我不想每次需要導入模型或服務時都要「計算」相對路徑(字面意思是我的項目中的每個頁面/類/等等。) –

+0

@JoshM。哦,快點!我不認爲我意識到這是模塊所做的,如果你知道這個問題,請用你的解決方案更新這個問題,我現在非常感興趣! – drewwyatt

相關問題