Spec-Zone.ru › JavaScript

TypeError: получение частного свойства, доступного только для установки

Исключение JavaScript "getting private setter-only property" возникает при чтении значения частного элемента, для которого определён только сеттер.

Сообщение

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)

Тип ошибки

TypeError

Что пошло не так?

Происходит попытка получить значение частного элемента, для которого указан только сеттер. В отличие от обычных объектов, где неопределённый геттер просто означает, что свойство всегда будет возвращать undefined, для частных элементов это ошибка.

Примеры

Частный элемент без геттера

Здесь у #name нет геттера, поэтому попытка прочитать его с помощью this.#name вызовет ошибку.

class Person {
  set #name(value) {}

  get name() {
    return this.#name;
  }
}

const person = new Person();
console.log(person.name);

Для частного элемента нетипично иметь сеттер без геттера. Либо добавьте геттер, либо реорганизуйте вашу программу так, чтобы сеттер также можно было удалить.

Смотрите также

  • Частные элементы
  • set

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Private_setter_only

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API