TypeError: "x" is not a non-null object
Fehlermeldung
TypeError: "x" is not a non-null object (Firefox) TypeError: Property description must be an object: "x" (Chrome) TypeError: Invalid value used in weak set (Chrome)
Fehlertyp
Was ist falsch gelaufen?
Ein Objekt wird erwartete aber nicht übergeben. null
ist kein Objekt und funktioniert nicht. In dieser Situation wird ein normales Objekt erwartet.
Beispiele
Eigehscgaftsbeschreibung erwartet
Wenn Methoden wie Object.create()
oder Object.defineProperty()
und Object.defineProperties()
(en-US) eingesetzt werden, wird als optionale Beschreibung ein Beschreibungsobjekt erwartet. Wenn kein Objekt übergeben wird (z. B. eine Zahl), wird ein Fehler erzeugt:
Object.defineProperty({}, 'key', 1);
// TypeError: 1 is not a non-null object
Object.defineProperty({}, 'key', null);
// TypeError: null is not a non-null object
Ein valides Beschreibungsobjekt kann wie folgendes aussehen:
Object.defineProperty({}, 'key', { value: 'foo', writable: false });
WeakMap
und WeakSet
Objekte benötigen Objektschlüssel
WeakMap
und WeakSet
Objekte speichern Objektschlüssel. Man kann keine anderen Schlüssel verwenden.
var ws = new WeakSet();
ws.add('foo');
// TypeError: "foo" is not a non-null object
Stattdessen sollte folgendes verwendet werden:
ws.add({foo: 'bar'});
ws.add(window);