JavaScript 中的私人 (#) getter

Private (#) getter in JavaScript

是否计划在 JavaScript 中支持私有 getters/setters?

class Next {
  #private = 0
  get #computed() { // SyntaxError: Unexpected token (
    return this.#private + 1
  }
}

如果不是,那背后的理由是什么?
我想实施不会成为障碍。对功能本身有异议吗?

是的,它们是 private methods and accessors proposal, a follow-on to class fields 的一部分。语法与您展示的完全一样。 JavaScript 引擎正在积极地实现它们,Babel 已经通过 @babel/plugin-proposal-private-methods 插件为它们进行了工作转换。

这两个提案由 static class features proposal 合并,涵盖静态 public 属性、静态私有字段和静态私有方法(包括访问器)。

更新 - ECMAScript 2021

使用最新的 es2021 版本也可以使用私有 getter 和 setter。

您的代码现在应该有效了:

class Next {
  #private = 0
  get #computed() { 
   return this.#private + 1
  }
}