TypeError: can't redefine non-configurable property "x"
The JavaScript exception "can't redefine non-configurable property" occurs when it wasattempted to redefine a property, but that property isnon-configurable.
In this article
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
TypeErrorWhat went wrong?
It was attempted to redefine a property, but that property isnon-configurable. Theconfigurable attribute controls whether the property can be deleted fromthe object and whether its attributes (other thanwritable) can be changed.Usually, properties in an object created by anobject initializer are configurable. However, for example, when usingObject.defineProperty(), the property isn't configurable by default.
Examples
>Non-configurable properties created by Object.defineProperty
TheObject.defineProperty() creates non-configurable properties if youhaven't specified them as configurable.
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 itlater in the code.
const obj = Object.create({});Object.defineProperty(obj, "foo", { value: "bar", configurable: true });Object.defineProperty(obj, "foo", { value: "baz", configurable: true });