Équivalence native
Chaque fonction Taphos est @deprecated par conception : l'objectif est de migrer vers du JavaScript natif. Mais toutes les fonctions n'ont pas un équivalent natif direct. Cette page classe chaque fonction par son niveau d'équivalence native.
Niveaux d'équivalence
| Niveau | Signification |
|---|---|
| 🟢 API native | Un équivalent natif direct existe. Vous pouvez remplacer la fonction par un seul appel natif. |
| 🟡 Composition | Pas d'appel natif unique, mais réalisable en composant quelques API natives ensemble. |
| 🔴 Personnalisé | Pas de vrai équivalent natif. La fonction implémente une logique qui n'existe pas nativement. |
Différences de comportement
Certaines fonctions marquées 🟢 ou 🟡 ont un équivalent natif, mais avec des différences de comportement subtiles entre taphos/lodash et l'implémentation native. Celles-ci sont marquées avec
. Cliquez dessus pour voir les détails.
Ces différences sont intentionnelles. Taphos s'aligne sur la sémantique JavaScript moderne plutôt que de reproduire chaque cas limite de Lodash. Si Lodash retourne true pour isNaN(new Number(NaN)) mais que Number.isNaN ne le fait pas, ce n'est pas un bug, c'est le web qui avance.
Dans la plupart du code réel, ces différences n'ont pas d'importance. Le
est là pour que vous puissiez prendre une décision éclairée, pas pour vous décourager de migrer.
Fonctions par niveau
🟢 API native104/127
at(), compact(), concat(), find(), findIndex(), first(), flatten(), flattenDeep(), flattenDepth(), fromPairs(), head(), indexOf() ⚠️, initial(), join(), last(), lastIndexOf() ⚠️, nth(), pullAll(), remove(), slice(), tail()each(), eachRight(), every(), filter(), flatMap(), includes(), map(), pluck(), reduce(), reduceRight(), reject(), some(), uniq()bind(), defer(), delay(), partial(), rest(), spread(), unary()eq() ⚠️, gt(), gte(), isBuffer(), isElement() ⚠️, isFinite(), isInteger(), isNaN() ⚠️, isSafeInteger(), isTypedArray() ⚠️, isWeakMap(), isWeakSet(), lt(), lte(), toInteger() ⚠️, toNumber(), toString() ⚠️add(), ceil() ⚠️, divide(), floor() ⚠️, max(), min(), multiply(), round() ⚠️, subtract()assign(), extend(), forIn() ⚠️, hasIn(), invoke(), keys(), toPairs(), unset(), update(), values()endsWith(), lowerCase(), padEnd(), padStart(), parseInteger(), repeat(), replace(), split(), startsWith(), toLower(), toUpper(), trim(), trimEnd(), trimStart(), upperFirst()attempt(), castArray(), cloneDeep() ⚠️, constant(), identity(), property(), propertyOf(), stubArray(), stubFalse(), stubObject(), stubString(), stubTrue()🟡 Composition21/127
pull() ⚠️, pullAllBy() ⚠️, pullAllWith() ⚠️, pullAt() ⚠️, without(), zipObject()flatMapDeep(), flatMapDepth(), size(), sortBy()wrap()toFinite(), toSafeInteger() ⚠️create(), forOwn() ⚠️, transform() ⚠️nthArg(), overEvery(), overSome(), rangeRight(), toPath()🔴 Custom2/127
pad(), upperCase()Related
- Arkhe vs Lodash — Comparaison complète pour les utilitaires non dépréciés
- Table d'équivalence — Équivalence complète entre bibliothèques
- Guide du module Taphos — Guide de migration et types d'enterrement