我试图在TypeScript中构建和发送MouseEvent
。 来自mozilla.org的simulateClick()
示例给出了调用构造函数的编译错误:TypeScript中的MouseEvent错误不匹配签名
“提供的参数与调用目标的任何签名都不匹配。”
function simulateClick() {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var cb = document.getElementById('checkbox');
var canceled = !cb.dispatchEvent(event);
if (canceled) {
// A handler called preventDefault.
alert("canceled");
} else {
// None of the handlers called preventDefault.
alert("not canceled");
}
}
我曾尝试在参数字典之前插入一个转换<MouseEventInit>
,但导致相同的错误。
即使在同一个错误的结果如下:
new MouseEvent('click', <MouseEventInit>null);
虽然它看起来像它相匹配的原型lib.d.ts
:
new(typeArg: string, eventInitDict?: MouseEventInit): MouseEvent;
解决方法:
var event: MouseEvent = new (<any>MouseEvent)('click',
{ 'view': window, 'bubbles': true, 'cancelable': true });
不错,任何想法,如果我们可以直接传递null? – 1Mayur