2014-01-05 60 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函数返回模块值。 –