جاوااسکریپت - dispatchEvent باعث خطا شد: اجرای 'dispatchEvent' روی 'EventTarget' شکست خورد: پارامتر 1 از نوع 'Event' نیست


من از Angular2 + TypeScript استفاده میکنم و وقتی سعی میکنم این کد را اجرا کنم:

var event = new Event('check');
window.dispatchEvent(event);

این کد باعث خطای زیر میشود:

اجرای 'dispatchEvent' روی 'EventTarget' ناموفق بود: پارامتر 1 از نوع 'Event' نیست.

من همه چیز را امتحان کردهام و فهمیدم که این کار خواهد کرد:

var event = new CustomEvent('check');

مشکل این است که CustomEvent توسط هیچ یک از مرورگرهای IE پشتیبانی نمیشود.

چیز دیگری که جواب میدهد این است:

var event = new Event('CustomEvent');
event.initCustomEvent('check');

مشکل این است که InitCustomEvent منسوخ شده است.

آیا کاری هست که بتوانم انجام دهم تا از این نوع خطا جلوگیری کنم؟ شاید جایی در تایپاسکریپت استثنا بسازم؟ یا از هر کدی استفاده کنم که منسوخ نشده باشد و برای IE Edge کار کند؟

پاسخ شماره ۱

راه حلی پیدا شد.

برای برخی تنظیمات TypeScript، new Event تنها زمانی نوع «Event» است که پارامتر دوم را وارد کنیم، مانند این مثال:

window.addEventListener('check', e => console.log(e.type))

var event = new Event('check', { bubbles: true, cancelable: false })
document.body.dispatchEvent(event) // event will buble up to window