TypeError: getting private setter-only property
The JavaScript exception "getting private setter-only property" occurs when reading the value of a private element for which only a setter is defined.
Message
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)
Error type
What went wrong?
There is an attempt to get the value of a private element for which only a setter is specified. Unlike normal objects, where an undefined getter just means the property would always return undefined, for private elements, this is an error.
Examples
Private element with no getter
Here, #name
has no getter, so trying to read it using this.#name
will throw an error.
js
class Person {
set #name(value) {}
get name() {
return this.#name;
}
}
const person = new Person();
console.log(person.name);
It's not usual for a private element to have a setter without a getter. Either add a getter or refactor your program so the setter can be removed too.