Skip to main content

TypeError: "x" is not a non-null object

The JavaScript exception "is not a non-null object" occurs when an object is expected somewhere and wasn't provided. null is not an object and won't work.

Message​

TypeError: Property description must be an object: x (V8-based)
TypeError: Property descriptor must be an object, got "x" (Firefox)
TypeError: Property description must be an object. (Safari)

Error type​

What went wrong?​

An object is expected somewhere and wasn't provided. null is not an object and won't work. You must provide a proper object in the given situation.

Examples​

Property descriptor expected​

When methods like {{jsxref("Object.create()")}} or {{jsxref("Object.defineProperty()")}} and {{jsxref("Object.defineProperties()")}} are used, the optional descriptor parameter expects a property descriptor object. Providing no object (like just a number), will throw an error:

Object.defineProperty({}, "key", 1);
// TypeError: 1 is not a non-null object

Object.defineProperty({}, "key", null);
// TypeError: null is not a non-null object

A valid property descriptor object might look like this:

Object.defineProperty({}, "key", { value: "foo", writable: false });

See also​

  • {{jsxref("Object.create()")}}
  • {{jsxref("Object.defineProperty()")}}
  • {{jsxref("Object.defineProperties()")}}