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 de fonction modifie la valeur des arguments au sein de la fonction, rendant incertaine la valeur du paramètre à tout moment donné. Lors du débogage, vous ne pouvez pas être certain qu'un paramètre contient toujours la valeur transmise par l'appelant. Cela crée de la confusion pour quiconque lit le code et rend la recherche de bugs plus difficile, car la valeur du paramètre change tout au long 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 incorrect : Le utilisateur le paramètre est réaffecté plusieurs fois, ce qui rend impossible de savoir ce que l'appelant d'origine a transmis sans lire l'intégralité de la fonction. Le débogage affiche des valeurs modifiées, et non l'entrée réelle, ce qui rend difficile de retracer les problèmes jusqu'à leur 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 c'est important : Nouvelles variables (utilisateur actuel, processedUser) conservent des valeurs intermédiaires tandis que l'original utilisateur le paramètre reste inchangé. Les débogueurs affichent la valeur d'entrée réelle, et le code suit clairement les transformations via des variables nommées.
Conclusion
Utilisez 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 une meilleure lisibilité et débogabilité.
.avif)
