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 é feita a tentativa de criar uma propriedade em um valor primitivo como um symbol, uma string, um number ou um boolean. Valores primitivos nâo podem ter nenhuma propriedade.
Mensagem
js
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?
No Strict_mode
, um TypeError
é gerado quando é feita a tentativa de
criar uma propriedade em um valor primitivo como
um symbol, uma string, um number ou um boolean.
Valores primitivos não podem ter nenhuma propriedade.
O problema pode ser que um valor inesperado está em um lugar inesperado, ou
que uma variante de objeto de uma String
ou um Number
é esperado.
Exemplos
Casos inválidos
js
"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 object