web-dev-qa-db-fra.com

Est-il utile d'importer des polyfills core-js ES6 et ES7?

Est-il utile ou redondant d'importer le polyfill ES6 pour Object

import 'core-js/es6/object';

et aussi le polyfill ES7 pour Object?

import 'core-js/es7/object';

Le polyfill ES7 couvre-t-il toutes les fonctionnalités ES6 et puis-je laisser le polyfill ES6 ou bien le polyfill ES6 ajoute-t-il des fonctionnalités non présentes dans le polyfill ES7?

12
Ionaru

Cette réponse concerne core-js@2. A partir de core-js@3, il n'y a plus de préfixes ES6 et ES7 séparés. Cela est dû à la façon dont ECMAScript s'est développé. Vous pouvez trouver plus de détails dans le core-js @ 3, babel and a look into the future post.

Oui, il y a une utilisation. Comparez simplement core-js/es6/object.js à core-js/es7/object.js .

Le polyfill objet ES6 fournit:
Symbol
Object.create
Object.defineProperty
Object.defineProperties
Object.getOwnPropertyDescriptor
Object.getPrototypeOf
Object.keys
Object.getOwnPropertyNames
Object.freeze
Object.seal
Object.preventExtensions
Object.isFrozen
Object.isSealed
Object.isExtensible
Object.assign
Object.is
Object.setPrototypeOf
Object.prototype.toString

D'autre part, le polyfill objet ES7 fournit:
Object.getOwnPropertyDescriptors
Object.values
Object.entries
Object.prototype.__defineGetter__
Object.prototype.__defineSetter__
Object.prototype.__lookupGetter__
Object.prototype.__lookupSetter__

Ainsi, le polyfill ES6 ajoute en effet uniquement les méthodes introduites dans ES6 et ce n'est pas couvert par le polyfill ES7. Celui-ci seulement ajoute des méthodes introduites dans ES7.

core-js semble être structuré de la même manière pour les autres classes.

15
Just a student

Les polyfills de core-js pour différentes versions d'ECMAScript sont pour la plupart distincts. Par exemple, jetez un œil à l'objet polyfill pour ES6 et ES7 .

Vous devez donc importer les deux si vous souhaitez que les fonctionnalités d'ES6 et ES7 soient remplies.

2
cyr_x