From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../reference/errors/no_non-null_object/index.html | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 files/fr/web/javascript/reference/errors/no_non-null_object/index.html (limited to 'files/fr/web/javascript/reference/errors/no_non-null_object') diff --git a/files/fr/web/javascript/reference/errors/no_non-null_object/index.html b/files/fr/web/javascript/reference/errors/no_non-null_object/index.html new file mode 100644 index 0000000000..a2196fd757 --- /dev/null +++ b/files/fr/web/javascript/reference/errors/no_non-null_object/index.html @@ -0,0 +1,66 @@ +--- +title: 'TypeError: "x" is not a non-null object' +slug: Web/JavaScript/Reference/Erreurs/No_non-null_object +tags: + - Erreurs + - JavaScript + - TypeError +translation_of: Web/JavaScript/Reference/Errors/No_non-null_object +--- +
{{JSSidebar("Errors")}}
+ +

Message

+ +
TypeError: Invalid descriptor for property {x} (Edge)
+TypeError: "x" is not a non-null object (Firefox)
+TypeError: Property description must be an object: "x" (Chrome)
+TypeError: Invalid value used in weak set (Chrome)
+
+ +

Type d'erreur

+ +

{{jsxref("TypeError")}}

+ +

Quel est le problème ?

+ +

Un objet devrait être trouvé et n'est pas fourni. La valeur {{jsxref("null")}} n'est pas un objet et ne fonctionnera pas, il est nécessaire de fournir un véritable objet pour que le code en question fonctionne.

+ +

Exemples

+ +

Absence d'un descripteur de propriété

+ +

Lorsqu'on utilise des méthodes telles que {{jsxref("Object.create()")}}, {{jsxref("Object.defineProperty()")}} ou {{jsxref("Object.defineProperties()")}}, le paramètre optionnel de description des propriétés doit être un descripteur sous la forme d'un objet. Si la valeur fournie n'est pas un objet (mais par exemple un nombre), l'appel à la méthode déclenchera une erreur :

+ +
Object.defineProperty({}, 'cle', 1);
+// TypeError: 1 is not a non-null object
+
+Object.defineProperty({}, 'cle', null);
+// TypeError: null is not a non-null object
+
+ +

Un descripteur de propriété valide aura la structure suivante :

+ +
Object.defineProperty({}, 'cle', { value: 'toto', writable: false });
+
+ +

Les clés de WeakMap et WeakSet sont des objets

+ +

Les objets {{jsxref("WeakMap")}} et {{jsxref("WeakSet")}} utilisent des objets comme clé. On ne peut pas utiliser d'autres types de valeurs pour les clés de ces objets.

+ +
var ws = new WeakSet();
+ws.add('toto');
+// TypeError: "toto" is not a non-null object
+ +

À la place, on utilisera des objets :

+ +
ws.add({toto: 'truc'});
+ws.add(window);
+
+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf