Règle
Ne pas remplacer fonction de la fonction.
La réaffectation des arguments d'une paramètres paramètres peut confondre
appelants et et rendre débogage difficile.
Langues prises en charge : 45+Introduction
La réaffectation des paramètres d'une fonction modifie la valeur des arguments au sein de la fonction, ce qui rend incertaine la valeur du paramètre à un moment donné. Lors du débogage, vous ne pouvez pas vous fier au fait qu'un paramètre contient toujours la valeur transmise par l'appelant. Cela crée de la confusion pour toute personne lisant le code et rend la recherche de bogues plus difficile car la valeur du paramètre change au cours de l'exécution.
Exemples de code
❌ Non conforme :
function processUser(user) {
if (!user) {
user = { id: null, name: 'Guest' };
}
user = { ...user, processedAt: Date.now() };
if (user.age < 18) {
user = { ...user, restricted: true };
}
return user;
}Pourquoi c'est mal : Le utilisateur est réaffecté plusieurs fois, ce qui fait qu'il est impossible de savoir ce que l'appelant original a passé sans lire la fonction entière. Le débogage montre les valeurs modifiées, et non l'entrée réelle, ce qui rend difficile la remontée des problèmes à la source.
✅ Conforme :
function processUser(user) {
const currentUser = user || { id: null, name: 'Guest' };
const processedUser = {
...currentUser,
processedAt: Date.now()
};
if (currentUser.age < 18) {
return { ...processedUser, restricted: true };
}
return processedUser;
}
Pourquoi cela est-il important ? Nouvelles variables (utilisateur actuel, utilisateur traité) conservent des valeurs intermédiaires, tandis que les utilisateur reste inchangé. Les débogueurs affichent la valeur réelle de l'entrée, et le code suit clairement les transformations par le biais de variables nommées.
Conclusion
Utiliser de nouvelles variables pour les transformations au lieu de réaffecter les paramètres. Cela rend le flux de données explicite et préserve l'entrée originale pour le débogage. La légère verbosité des déclarations de variables supplémentaires est compensée par l'amélioration de la lisibilité et du débogage.
.avif)
