应用程序中有一个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-新奇事物