TypeError: "x" is not a non-null object(Тип ошибки: "x" не является ненулевым объектом)

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Сообщения

TypeError: недопустимый дескриптор свойства {x} (Edge)
TypeError: "x" не является ненулевым объектом (Firefox)
TypeError: описание свойства должно быть объектом: "x" (Chrome)
TypeError: недопустимое значение, используемое в слабом наборе (Chrome)

Тип ошибки

TypeError

Что пошло не так?

Объект где-то ожидался и не был предоставлен. null не является объектом и не будет работать. Вы должны обеспечить надлежащий объект в данной ситуации.

Примеры

Ожидается дескриптор свойства

Когда такие методы, как Object.create() или object.defineProperty() и object.defineProperties() используются, дополнительный параметр дескриптора ожидает объект дескриптора свойства. Если не указать объект (например, просто число), возникнет ошибка:

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

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

Допустимый объект дескриптора свойства может выглядеть следующим образом:

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

СлабаяКарта и СлабыйСет объектов требуют ключей объектов

WeakMap and WeakSet объекты хранят ключи объектов. Вы не можете использовать другие типы ключей.

var ws = new WeakSet();
ws.add('foo');
// TypeError: "foo" is not a non-null object

Создание обьекта вместо:

ws.add({foo: 'bar'});
ws.add(window);

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: mdnwebdocs-bot, MakarovDs777
Обновлялась последний раз: mdnwebdocs-bot,