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

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)

錯誤型別

TypeError

哪裡出錯了?

在某個地方需要一個物件,但未提供。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 });

另見