| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_delete | [Back] [Original] |
Get to know MDN better
The JavaScript exception "property is non-configurable and can't be deleted" occurs when it was attempted to delete a property, but that property is non-configurable.
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 in strict mode only.
It was attempted to delete a property, but that property is non-configurable. The
configurable attribute controls whether the property can be deleted from
the object and whether its attributes (other than writable) can be changed.
This error happens only in strict mode code. In
non-strict code, the operation returns false.
Non-configurable properties are not super common, but they can be created using
Object.defineProperty() or 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
There are also a few non-configurable properties built into JavaScript. Maybe you tried to delete a mathematical constant.
"use strict";
delete Math.PI; // TypeError
This page was last modified on Jul 8, 2025 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |