TypeError: нельзя присвоить свойство "x" объекту "y": не является объектом
Исключение JavaScript в строгом режиме "нельзя присвоить свойство" возникает при попытке создать свойство на примитивном значении, таком как символ, строка, число или логическое значение. Примитивные значения не могут содержать никаких свойств.
Сообщение
TypeError: Cannot create property 'x' on number '1' (V8-based) TypeError: can't assign to property "x" on 1: not an object (Firefox) TypeError: Attempted to assign to readonly property. (Safari)
Тип ошибки
Что пошло не так?
В строгом режиме TypeError выбрасывается при попытке создать свойство на примитивном значении, таком как символ, строка, число или логическое значение. Примитивные значения не могут содержать никаких свойств.
Проблема может заключаться в том, что неожиданное значение поступает в неожиданное место, или ожидается объектный вариант String или Number.
Примеры
Некорректные случаи
"use strict";
const foo = "my string";
// The following line does nothing if not in strict mode.
foo.bar = {}; // TypeError: can't assign to property "bar" on "my string": not an object
Исправление проблемы
Либо исправьте код, чтобы предотвратить использование примитивного значения в таких местах, либо исправьте проблему, создав эквивалентный объект Object.
"use strict";
const foo = new String("my string");
foo.bar = {};
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_assign_to_property