如何在 TypeScript 中创建 ErrorEvent?

cor*_*ath 5 error-handling typescript typescript-typings

根据这篇文章

如何在 JavaScript 中正确初始化 ErrorEvent?

您应该能够EventError使用以下代码创建一个:

var error = new ErrorEvent('oh nose', {
    error : new Error('AAAHHHH'),
    message : 'A monkey is throwing bananas at me!',
    lineno : 402,
    filename : 'closet.html'
});
Run Code Online (Sandbox Code Playgroud)

但是,如果您在 TypeScript 游乐场中尝试此操作:

https://www.typescriptlang.org/play/#src=var%20error%20%3D%20new%20ErrorEvent('oh%20nose'%2C%20%7B%0A%20%20%20%20error%20 %3A%20new%20Error('AAAHHHH')%2C%0A%20%20%20%20message%20%3A%20'A%20monkey%20is%20 throwing%20bananas%20at%20me!'%2C%0A% 20%20%20%20lineno%20%3A%20402%2C%0A%20%20%20%20文件名%20%3A%20'closet.html'%0A%7D)%3B

它说Supplied parameters do not match any signature of call target.

即使这个简单的例子也无法编译:

var error = new ErrorEvent('oh nose');
Run Code Online (Sandbox Code Playgroud)

我试图通过查看类型定义来弄清楚

https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es6.d.ts#L9612

但想不通。

在 TypeScript 中创建完全合法的内容还缺少什么EventError

Dav*_*ret 3

lib.es6.d.ts不完全符合规范

您应该在TypeScript 的 github上记录问题,但目前您可以编辑lib.es6.d.ts以包含修复程序:

// add this interface
interface ErrorEventInit {
    // ...put the properties here...
}

// edit this declare var's new signature
declare var ErrorEvent: {
    new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
    prototype: ErrorEvent;
}
Run Code Online (Sandbox Code Playgroud)