网站搜索

typescript - 有没有办法在 super() 构造函数中使用 'this'?


我正在查看另一个人的代码,在代码中,他们有基本上是这样的代码:

class foo extends bar {
    constructor() {
        super(param1, param2, new certainObject(this, otherParams));
    }
}

我在这段代码上遇到的问题是,它给出的错误是 'super' 必须在访问派生类构造函数中的 'this' 之前调用。

我在想:有没有办法在调用 super() 时使用 this,还是我必须完全重构代码?

答案#1

我认为没有一种直接且非投机的方式可以在 super 调用之前使用 this,并且不是作为该调用的一部分(而这正是错误信息告诉你的内容)。

这是 TypeScript 书籍中关于它的说明。在 GitHub 上也有一个相关(但不相同)的问题被提出,以允许在 super 之前执行至少一些与 this 无关的代码。