В своем приложении реагирования я получаю пользовательский файл javascript с сервера и добавляю его как тег script
к телу document
.
этот новый добавленный файл содержит метод с именем manipulator
. Теперь в одном из компонентов я хочу вызвать эту функцию. Как я знаю, функция должна существовать в глобальном объекте window
.
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'.ts (2339)
, что вполне логично, но я не нашел способа создать расширенный интерфейс для window
или каким-либо другим способом сообщить компилятору, что в window
есть дополнительная функция с именем manipulator
.
Любая помощь приветствуется.
----------Just in case--how the script is added to document--------------
loadProjectCustomJS() {
runInAction(async () => {
thisfetchProjectJs().then((doc) => {
const body: HTMLBodyElement = document.getElementsByTagName('body')[0];
const customjs: HTMLScriptElement = document.createElement('script');
customjs.type = 'text/javascript';
customjs.id = 'customJsId'
customjs.src = doc.get('resourceUrl');
body.appendChild(customjs);
});
});
}