TypeError: "x" 不是非空对象

JavaScript 异常“不是非空对象”发生在某个地方需要对象但未提供时。 null 不是对象,无法使用。

消息

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)

错误类型

哪里出错了?

某个地方需要对象但未提供。 null 不是对象,无法使用。您必须在给定情况下提供一个合适的对象。

示例

需要属性描述符

当使用 Object.create()Object.defineProperty()Object.defineProperties() 等方法时,可选的描述符参数需要一个属性描述符对象。如果不提供对象(例如,只提供一个数字),则会抛出错误

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

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

有效的属性描述符对象可能如下所示

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

另请参阅