Javascript SAFARI:意外标记'=';。预计会有一个开幕式';(';在方法的参数列表之前)

Javascript SAFARI:意外标记'=';。预计会有一个开幕式';(';在方法的参数列表之前),javascript,safari,Javascript,Safari,得到了这段代码,它可以在所有浏览器中完美工作,但不能在Safari(11.1.2版)中工作 类帐户{ accountFields=['field1','field2','field3'] } 在Safari调试器中获取以下错误: 意外标记“=”。在方法的 参数表 因此,我尝试在阵列的任何位置、前后添加()。没有任何效果。您正在使用一种实验性功能,称为which is current in.支持此功能的Safari版本只有v14.1(2021年4月26日发布)如果您需要支持较旧版本的Safari

得到了这段代码,它可以在所有浏览器中完美工作,但不能在Safari(11.1.2版)中工作

类帐户{
accountFields=['field1','field2','field3']
}
在Safari调试器中获取以下错误:

意外标记“=”。在方法的 参数表


因此,我尝试在阵列的任何位置、前后添加
()
。没有任何效果。

您正在使用一种实验性功能,称为which is current in.支持此功能的Safari版本只有v14.1(2021年4月26日发布)如果您需要支持较旧版本的Safari/更广泛的浏览器,您需要遵循以下建议之一


您可以使用来定义类实例的属性,而不是使用公共字段声明。使用构造函数确实有(对于IE支持,您可以使用):


正如在的评论中所指出的,您也可以使用Babel作为替代解决方案。使用Babel意味着您不必更改代码,如果您在整个项目中大量使用公共字段声明,这会使您的工作更轻松。Babel将把您的现代JS代码转换/编译为较旧的代码(ES5及以下版本)很多浏览器都能理解的JS代码。你可以像这样使用babel插件

首先,安装babel插件:

npm install --save-dev @babel/plugin-proposal-class-properties
然后将插件添加到配置文件中:

{
  "plugins": ["@babel/plugin-proposal-class-properties"]
}

其他安装选项(babel CLI等),请参阅该插件的文档。

您也可以使用babel进行编译,而无需更改代码:“@babel/plugin Proposition class properties”:我有
版本14.0.1
,但我仍然收到相同的错误。该版本现在还没有beta版。@Savandy谢谢,很明显,Safari的新版本中有一个版本,因此mom只提供了部分支持耳鼻喉科
{
  "plugins": ["@babel/plugin-proposal-class-properties"]
}