我想使用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中有自动完成功能......它可以在浏览器中运行。