在我的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
答案 0 :(得分:1)
您可以像这样从TypeScript模块(ts或tsx)内部将其添加到Window
界面中:
declare global {
interface Window {
manipulator: () => void;
}
}
或者您可以创建一个包含以下内容的全局global.d.ts
(名称无关紧要,只是它位于您的源目录中)
declare interface Window {
manipulator: () => void;
}
请注意,这使得该函数随处可见,甚至在脚本初始化之前。