Documentación offline JavaScript main

TypeError: can't redefine non-configurable property "x"

main Documentación oficial Licencia CC-BY-SA-2.5Descargado el 2026-08-02

En esta página

The JavaScript exception "can't redefine non-configurable property" occurs when it was attempted to redefine a property, but that property is non-configurable.

Message#

TypeError: Cannot redefine property: "x" (V8-based)
TypeError: can't redefine non-configurable property "x" (Firefox)
TypeError: Attempting to change value of a readonly property. (Safari)

Error type#

{{jsxref("TypeError")}}

What went wrong?#

It was attempted to redefine 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. Usually, properties in an object created by an object initializer are configurable. However, for example, when using {{jsxref("Object.defineProperty()")}}, the property isn't configurable by default.

Examples#

Non-configurable properties created by Object.defineProperty#

The {{jsxref("Object.defineProperty()")}} creates non-configurable properties if you haven't specified them as configurable.

```js example-bad const obj = Object.create({}); Object.defineProperty(obj, "foo", { value: "bar" });

Object.defineProperty(obj, "foo", { value: "baz" }); // TypeError: can't redefine non-configurable property "foo"

You will need to set the "foo" property to configurable, if you intend to redefine it
later in the code.

```js example-good
const obj = Object.create({});
Object.defineProperty(obj, "foo", { value: "bar", configurable: true });
Object.defineProperty(obj, "foo", { value: "baz", configurable: true });

See also#