[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Errors/Cant_delete [Back]  [Original]

TypeError: property "x" is non-configurable and can't be deleted - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

TypeError: property "x" is non-configurable and can't be deleted

Message

TypeError: Calling delete on 'x' is not allowed in strict mode (Edge)
TypeError: property "x" is non-configurable and can't be deleted. (Firefox)
TypeError: Cannot delete property 'x' of #<Object> (Chrome)

Dans cet article

Type d'erreur

TypeError in strict mode only.

Quel est le problme ?

Une instruction demande la suppression d'une proprit non-configurable. L'attribut configurable permet de contrler si la proprit peut tre supprime de l'objet auquel elle est rattache et si ces attributs (en dehors de writable) peuvent tre modifis.

Cette erreur ne se produit qu'en mode strict. En mode non-strict, l'opration de suppression renverra false.

Exemples

Les proprits non-configurables ne sont pas trs frquentes mais il est possible d'en crer grce Object.defineProperty() ou Object.freeze().

js
"use strict";
var obj = Object.freeze({ name: "Elsa", score: 157 });
delete obj.score; // TypeError

("use strict");
var obj = {};
Object.defineProperty(obj, "toto", { value: 2, configurable: false });
delete obj.toto; // TypeError

("use strict");
var frozenArray = Object.freeze([0, 1, 2]);
frozenArray.pop(); // TypeError

Certaines proprits natives de JavaScript sont non-configurables. Peut-tre que le code tente de supprimer une constante mathmatique :

js
"use strict";
delete Math.PI; // TypeError

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page