Приветик! Переменные внутри модулей изолированы, поэтому в глобальную область видимости не попадают (от этого и обращение через
window
не работает). По практике лучше избегать глобальной ОВ:
// script.ts:
export class Test {
constructor(public id: string) {}
click(element: HTMLElement) {
console.log("Жмак", this.id, element);
}
}
const test = new Test("1");
export default test;
// html
<script type="module">
import { Test } from 'http://localhost:8080/ts/script.ts';
const test = new Test("1");
// вешаем обработчик через JavaScript, а не через onclick
document.querySelector("div").addEventListener("click", () => test.click(this));
</script>
<div>Клик</div>