TypeError: getting private setter-only property
The JavaScript exception "getting private setter-only property" occurs when reading the value of a private property 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 property for which only a setter is specified. Unlike normal objects, where an undefined getter just means the property would always return undefined, for private properties, this is an error.
Examples
Private property 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 property to have a setter without a getter. Either add a getter or refactor your program so the setter can be removed too.