为什么jshint在我声明类字段时抛出错误



应用程序中有一个App类:

class App {
static cart;
static init() {
const shop = new Shop();
shop.render();
this.cart = shop.cart;
}
}

我使用VSCode作为IDE,使用jshint作为代码质量工具
static cart;声明为App类字段会导致Problems panel:中的下一条错误消息

(property) App.cart: any
Class properties must be methods. Expected '(' but instead saw ';'. (E054)jshint(E054)

我试着用谷歌搜索这个问题,但没有成功
你能告诉我我做错了什么吗
我是JS的新手,所以我的代码中可能有语法错误?

我不清楚您的代码应该做什么(例如,我不知道Shop是什么/做什么(,但我可以告诉您,类字段定义是允许的,并且从ES2022规范起不再是实验性的。

我认为这是当前版本jshint(在撰写本文时为v2.13.4(中的缺陷/限制,因为它还不能识别类字段。看见https://github.com/jshint/jshint/issues/3139,跟踪问题。

不幸的是,对于这个项目来说,JSHint近年来很难跟上其他工具的步伐。正如一位维护人员在这里描述的那样,这至少在一定程度上是由于其聪明幽默但令人惊讶的有问题的许可协议。

另请参阅:

  • https://blog.saeloun.com/2021/11/18/ecmacscript-static-fields.html
  • https://deliciousinsights.github.io/confoo-es2022/#/class-新奇事物

最新更新