Я создаю плагин с использованием Typescript, который создает DOM для заголовка и присоединяет его к странице. Этот проект использует JQuery для операций DOM. Я хочу передать параметры конфигурации плагину со страницы HTML. Для этого я расширяю JQuery с помощью своей пользовательской функции и передаю в нее параметры.
Но проблема в том, что когда я загружаю эту HTML-страницу, я получаю сообщение об ошибке: «$ (...). CreateCentralHeader не является функцией».
Вот мой файл Index.html:
<!DOCTYPE html>
<html lang="en">
<body class="siteheader-body">
<div class="cep-Header"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="./dist/cep_HeaderCore.js"></script>
<script>
$('cep-Header').createCentralHeader({
headerUrl: "Hello World!!"
});
</script>
</body>
</html>
Вот мой файл main.ts:
import * as $ from "jquery";
$.fn.createCentralHeader = function(this: JQuery, options?: HeaderOptions) {
const settings: HeaderOptions = {
headerUrl: options.headerUrl
};
alert(settings.headerUrl);
};
Вот мой central-header.d.ts:
interface HeaderOptions {
headerUrl?: string;
}
interface JQuery {
createCentralHeader(options?: HeaderOptions);
}
Я использую веб-пакет, который использует ts-загрузчик для переноса TS и связывания моего плагина в файл cep_HeaderCore.js, на который есть ссылка в index.html.
Еще одна важная вещь, на которую следует обратить внимание, это то, что если я вызываю createCentralHeader из плагина, он работает как положено. например:
import * as $ from "jquery";
$.fn.createCentralHeader = function(this: JQuery, options?: HeaderOptions) {
const settings: HeaderOptions = {
headerUrl: options.headerUrl
};
alert(settings.headerUrl);
};
$("cep-Header").createCentralHeader({
headerUrl: "Hello World!!"
});
Что здесь не так?