gpt4 book ai didi

javascript - 有没有办法关闭 babelify 中的 "this is not allowed before super"规则?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:43:43 25 4
gpt4 key购买 nike

我正在使用 Gulp 运行 babelify 7.2.0,但在以下代码中出现错误:

class One {}

class Two extends One {
constructor() {
this.name = 'John';
}
}

错误的关键在于:

SyntaxError: [the file path in question]: 'this' is not allowed before super()
20 | class Two extends One {
21 | constructor() {
> 22 | this.name = 'John';
| ^
23 | }
24 | }
25 |

在我看来,这不应该触发,因为我根本没有在构造函数中进行任何 super 调用,因此没有冲突的风险。我已经在 Github 上提交了一个问题,但我想知道是否有办法同时将其关闭。

最佳答案

这不是错误。子类必须在尝试访问this之前调用super显式:

class Two extends One {
constructor(...args) {
super(...args);
this.name = 'John';
}
}

这是在 ECMAScript 标准中定义的(参见 this 答案),Babel 紧随其后。

关于javascript - 有没有办法关闭 babelify 中的 "this is not allowed before super"规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34172639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com