TypeError: can't assign to property "x" on "y": not an object

Message

TypeError: can't assign to property "x" on {y}: not an object (Firefox)
TypeError: Cannot create property 'x' on {y} (Chrome)

Type d'erreur

Quel est le problème ?

En mode strict, une exception TypeError est déclenchée lorsqu'on tente de créer une propriété sur une valeur primitive telle qu'un symbole, une chaîne de caractères, un nombre ou un booleén.

Le problème peut être lié à une valeur qui se trouve à un endroit inattendu ou qu'un équivalent objet d'une valeur primitive est attendu (ex. String pour la chaîne de caractères ou Number pour un nombre).

Exemples

Exemple invalide

js
"use strict";

var 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

Exemple valide

On pourra corriger le problème en convertissant la valeur primitive en sont équivalent objet avec un constructeur (ici String pour .

js
"use strict";

var foo = new String("my string");
foo.bar = {};

Voir aussi