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 });