首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript类私有字段的google闭包编译器解析器错误

使用javascript类私有字段的google闭包编译器解析器错误
EN

Stack Overflow用户
提问于 2022-09-23 10:29:16
回答 1查看 25关注 0票数 0

使用Google闭包编译器获取JavaScript私有类字段的解析器错误,尽管根据MDN得到了广泛支持。推广他们的例子:

代码语言:javascript
复制
class ClassWithPrivateField {
  #privateField;

  constructor() {
    this.#privateField = 42;
  }

  getPrivate() {
    return this.#privateField;
  }
}

console.log("private field", new ClassWithPrivateField().getPrivate());

将上述内容保存到private.js中,并在节点容器中运行:

代码语言:javascript
复制
$ docker run \
        --workdir /home/node/app \
        --rm -t -v $PWD:/home/node/app \
        node:18 bash -c \
        "node private.js"
private field 42

控制台输出在上面的最后一行上正确显示。现在如果我们通过google-closure-compiler运行它

代码语言:javascript
复制
$ docker run \
        --workdir /home/node/app \
        --rm -t -v $PWD:/home/node/app \
        node:18 bash -c \
        "npm i -g google-closure-compiler && google-closure-compiler --js /home/node/app/private.js"

这是最后的输出:

代码语言:javascript
复制
/home/node/app/private.js:2:2: ERROR - [JSC_PARSE_ERROR] Parse error. '}' expected
  2|   #privateField;
       ^

1 error(s), 0 warning(s)

我从一个Github哨所那里得到了这样的印象:这个特性还不受支持,对吗?如果我想使用私有字段,是否有解决方案或解决办法?即使忽略此错误以允许编译继续,也是可以接受的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-09-24 17:13:42

闭包编译器还不支持私有字段。周围的工作太不使用私有字段或使用像Babel一样的东西来翻译它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73826369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档