React Typescript,从外部脚本调用函数

时间:2019-04-28 16:48:59

标签: javascript typescript dom react-tsx global-functions

在我的react应用程序中,我从服务器获取了一个自定义javascript文件,并将其作为X = [2 2;3 4;0.5 4;3 6;5 7;7 8;6 8] y = [0;0;0;0;1;1;1] plot(X(y>0,1), X(y>0,2), 'rs','MarkerFaceColor', 'r', 'MarkerSize', 27, X(y==0,1), X(y==0,2),'go', 'MarkerFaceColor', 'g', 'MarkerSize', 27) axis([0 10 0 10]) 标记附加到script的正文中。

此新添加的自定义文件包含一个名为document的方法。现在,在其中一个组件中,我想调用该函数。据我所知,该函数应该存在于manipulator全局对象中。

window

但是在这里我得到了编译器错误

  

类型“ Window”上不存在属性“操纵器”。ts(2339)

这是完全合乎逻辑的,但是我没有找到为if(documnet.getElementById('customJsId')){ // check if the script tag exists in document window.manipulator(); // which I get Property 'iframeManipulator' does not exist on type 'Window'.ts(2339) } 创建扩展接口的方法,也没有找到其他方法告诉编译器window中有一个称为{{1 }}。

感谢您的帮助。

window

1 个答案:

答案 0 :(得分:1)

您可以像这样从TypeScript模块(ts或tsx)内部将其添加到Window界面中:

declare global {
  interface Window {
    manipulator: () => void;
  }
}

或者您可以创建一个包含以下内容的全局global.d.ts(名称无关紧要,只是它位于您的源目录中)

declare interface Window {
  manipulator: () => void;
}

请注意,这使得该函数随处可见,甚至在脚本初始化之前。