TypeError: свойство "x" не является конфигурируемым и не может быть удалено
JavaScript-исключение "свойство не является конфигурируемым и не может быть удалено" возникает, когда была предпринята попытка удалить свойство, но это свойство не является конфигурируемым.
Сообщение
TypeError: Cannot delete property 'x' of #<Object> (V8-based) TypeError: property "x" is non-configurable and can't be deleted (Firefox) TypeError: Unable to delete property. (Safari)
Тип ошибки
TypeError только в строгом режиме.
Что пошло не так?
Была предпринята попытка удалить свойство, но это свойство не является конфигурируемым. Атрибут configurable контролирует, может ли свойство быть удалено из объекта и могут ли быть изменены его атрибуты (кроме writable).
Эта ошибка возникает только в коде строгого режима. В нестрогом коде операция возвращает false.
Примеры
Попытка удалить неконфигурируемые свойства
Неконфигурируемые свойства встречаются не так часто, но их можно создать с помощью Object.defineProperty() или Object.freeze().
"use strict";
const obj = Object.freeze({ name: "Elsa", score: 157 });
delete obj.score; // TypeError
"use strict";
const obj = {};
Object.defineProperty(obj, "foo", { value: 2, configurable: false });
delete obj.foo; // TypeError
"use strict"; const frozenArray = Object.freeze([0, 1, 2]); frozenArray.pop(); // TypeError
Также существует несколько встроенных в JavaScript неконфигурируемых свойств. Возможно, вы пытались удалить математическую константу.
"use strict"; delete Math.PI; // TypeError
См. также
© 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/Cant_delete