Typescript定义文件不是模块

时间:2017-09-14 21:47:24

标签: javascript reactjs typescript typescript-typings

我想使用import语句将原型JavaScript对象加载到我的Reactjs项目中。

首先,我有一个原型Javascript对象,我将其导出为Webpack模块:

var FloDialog=function(t){this.id=Date.now(),this.cloak=this.rende // etc //etc

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

然后在类型定义文件flo-dialog.min.d.ts中,我有下面的代码:

declare module 'flo-dialog' {

interface FloDialogOptions {
    cache: boolean;
    position: string;
    effect: {
        fade: boolean;
        fill: boolean;
    }
}

interface FloDialog {
    constructor(opts?: FloDialogOptions): void;
    openUrl(title: string, url: string, callback?: () => void): void;
}

const FloDialog: FloDialog;
export = FloDialog;

}

最后,我在React组件import * as FloDialog from '../public/js/flo-dialog.min';中使用了import语句Main.tsx file

它在浏览器中有效,但我收到的是Typescript错误:TS2306: File '/public/js/flo-dialog.min.d.ts' is not a module.

那么,如何在React中使用import语句正确导入JavaScript原型对象并强制输入?到目前为止我的方法有什么问题?

更新:科科多科评论很有用。

我现在通过import {IFloDialog} from './types/index';和Webpack模块通过const FloDialog = require('../public/js/flo-dialog.min');

导入类型接口

我不确定这是不是这样做的。但它可以工作,没有Typescript错误,IDE中有自动完成功能......它可以在浏览器中运行。

0 个答案:

没有答案