2014-01-05 66 views
0

我有一個工廠模塊,其使用需要創建所需的對象打字稿及requirejs

getProviderManager(providername: string): VideoProviderManager { 

    var providerManager = require(providername); 
} 

的VideoProviderManager被decalred爲'

export class VideoProviderManager 

但是我有很多錯誤的認爲VideoProviderManager不已知和 我試過了`

import VideoProviderManager = require("VideoProvider/VideoProviderManager"); 

但是沒有suce SS。 ?我試圖使用要求和出口類的組合命名空間的模塊 的是有可能`

回答

0

如果你想VideoProviderManager導出爲模塊的價值,你需要使用export =語法:

class VideoProviderManager { 
    // ... 
} 
export = VideoProviderManager; 

使用export class VideoProviderManager意味着該類將暴露在模塊的VideoProviderManager屬性上。

有關詳情,請參閱The Definitive Guide to TypeScript

此外,對於getProviderManager,您正在使用的同步require語法必須已經由RequireJS加載模塊。

+0

我已經改變了所有我的文件使用導出和導入,並且所有的錯誤都消失了,當我調用var providerManager = require(providername);我得到了模塊無法找到的異常,儘管我給了它絕對路徑,我想根據用戶決定使用哪些模塊來加載這些模塊 –

+0

如果您嘗試加載卸載,則需要使用異步「require」調用模塊。 'require([providername],callback)'。請注意,第一個參數是一個數組,第二個參數是一個回調,一旦模塊被加載,該回調就會被調用。不,沒有其他方法可以從getProviderManager函數返回模塊值。 –