找不到用require()加载的模块的名称

时间:2017-09-13 20:54:13

标签: javascript reactjs typescript

我在React文件的顶部插入一个Javascript文件(顺便说一句,我使用的是Typescript):

let FloDialog = require('../public/js/flo-dialog.min');

然后这个对话框类有一个属性:

dialog: FloDialog = null;

请注意,类型应为FloDialog。这是模块中包含的原型对象的名称。

然后在构造函数中我初始化对话框,如下所示:

constructor() {
    super();
    this.dialog = new FloDialog({
        effect: {
            fade: true
        },
        position: 'fixed'
    });
}

后来我在这个对话框原型对象上调用一个函数来打开一个对话框。 这段代码确实有用,但是我收到了一个Typescript错误:TS2304:找不到名字'FloDialog'。在dialog: FloDialog = null;行。

模块文件如下所示:

var FloDialog=function(t){this.id=Date.now(),this.cloak=this.renderCloakHtml()...etc..etc... (minified code)

if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
    module.exports = FloDialog;
}

所以我将原型对象导出为模块。我用require()函数包含它。为什么行dialog: FloDialog = null;上没有识别出类型以及如何修复它?

1 个答案:

答案 0 :(得分:0)

未定义类型FloDialog。你没有../public/js/flo-dialog.min.d.ts来描述它应该是什么样子。