TypeError: 获取私有仅限设置器属性
消息
TypeError: '#x' was defined without a getter (V8-based) TypeError: getting private setter-only property (Firefox) TypeError: Trying to access an undefined private getter (Safari)
错误类型
哪里出错了?
尝试获取仅指定了setter的私有属性的值。与普通对象不同,在普通对象中,未定义的getter仅表示属性始终返回undefined,对于私有属性,这是一个错误。
示例
没有getter的私有属性
这里,#name
没有getter,因此尝试使用this.#name
读取它将抛出错误。
js
class Person {
set #name(value) {}
get name() {
return this.#name;
}
}
const person = new Person();
console.log(person.name);
私有属性没有getter但有setter的情况并不常见。请添加getter或重构程序,以便也可以删除setter。