是否可以扩展 TypeScript 中的内置 Event 类?

Toa*_*ast 2 typescript

代码:

class MyEvent extends Event {
    constructor(name) {
        super(name);
    }
}

var event = new MyEvent("mousemove");
Run Code Online (Sandbox Code Playgroud)

运行时错误:

未捕获的类型错误:无法构造“事件”:请使用“new”运算符,此 DOM 对象构造函数不能作为函数调用。

有没有解决的办法?

bas*_*rat 5

未捕获的类型错误:无法构造“事件”:请使用“new”运算符,此 DOM 对象构造函数不能作为函数调用。

问题在于Event v8 运行时内部的定义。它不适合基于class扩展。过去也存在同样的错误问题,即以下内容曾经失败:

class MyError extends Error {
    constructor(message) {
        super(message);
    }
}

const error = new MyError("some message");
Run Code Online (Sandbox Code Playgroud)

所以目前来说。您无法Event在 TypeScript(或 ES6 类)中扩展该类。