Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
TypeError: "x" is (not) "y"
Message
TypeError: Unable to get property {x} of undefined or null reference (Edge)TypeError: "x" is (not) "y" (Firefox)Exemples :
TypeError: "x" is undefinedTypeError: "x" is nullTypeError: "undefined" is not an objectTypeError: "x" is not an object or nullTypeError: "x" is not a symbol
Dans cet article
Type d'erreur
Quel est le problème ?
Un type inattendu a été rencontré. Cela se produit la plupart du temps avec les valeursundefined ounull.
Certaines méthodes commeObject.create() ouSymbol.keyFor() ont des contraintes sur le type de valeur qui peut être passé en argument.
Exemples
>Exemples invalides
js
// undefined et null : des valeurs// sur lesquelles la méthode substring// ne fonctionnera pasvar toto = undefined;toto.substring(1); // TypeError: toto is undefinedvar toto = null;toto.substring(1); // TypeError: toto is null// Certaines méthodes nécessitent une valeur// d'un type spécifiquevar toto = {};Symbol.keyFor(toto); // TypeError: toto is not a symbolvar toto = "truc";Object.create(toto); // TypeError: "toto" is not an object or nullRésoudre le problème
Pour résoudre ce problème et écarter les cas où la valeur vautundefined, on peut par exemple utiliser l'opérateurtypeof.
js
if (typeof toto !== "undefined") { // Désormais, on sait que toto est bien // défini et on peut poursuivre.}