Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
TypeError: can't assign to property "x" on "y": not an object
A exceção do modo strict do Javascript "can't assign to property" ocorre quando é feitaa tentativa de criar uma propriedade em um valorprimitivocomo umsymbol, umastring, umnumber ou umboolean.Valoresprimitivos nâo podem ter nenhumapropriedade.
In this article
Mensagem
TypeError: can't assign to property "x" on {y}: not an object (Firefox)TypeError: Cannot create property 'x' on {y} (Chrome)Tipo de Erro
O que deu errado?
NoStrict_mode, umTypeError é gerado quando é feita a tentativa decriar uma propriedade em um valorprimitivo comoumsymbol, umastring, umnumber ou umboolean.Valoresprimitivos não podem ter nenhumapropriedade.
O problema pode ser que um valor inesperado está em um lugar inesperado, ouque uma variante de objeto de umaString ou umNumber é esperado.
Exemplos
>Casos inválidos
"use strict";var foo = "minha string";// A linha a seguir não faz nada se não estiver em modo strict.foo.bar = {}; // TypeError: can't assign to property "bar" on "my string": not an objectCorrigindo o problema
Corrija o código para evitar que umprimitivo seja usado em tais lugares, ou corrija o problema criando o objeto homólogoObject.
"use strict";var foo = new String("minha string");foo.bar = {};