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 objectStattdessen sollte folgendes verwendet werden:
ws.add({foo: 'bar'});
ws.add(window);