Pour être clair: il n'y a rien de mal avec votre syntaxe.
Il est pas JavaScript lancer cette erreur, il est vos paramètres de linter qui ont la règle no-useless-concat
mis à jeter une erreur lorsqu'il détecte concaténation de chaîne classique:
// classic string concatenation
'a' + 'b' + 'c';
mais une erreur de linter n'est pas toujours Identique à une erreur JavaScript, donc pour être clair, votre utilisation de la concaténation de chaîne n'est pas incorrecte, et ne lancerait pas une erreur JavaScript si vous essayez d'exécuter ce code dans le navigateur, ou Node, etc. Vous ne voyez qu'un erreur car vos règles de linter ont été configurées pour préférer les chaînes de modèles à la concaténation de chaînes. La règle no-useless-concat
suppose que vous êtes dans un environnement où les littéraux de modèle ES6 sont pris en charge et l'utilisation de la règle no-useless-concat
permet d'appliquer la préférence pour les littéraux de modèle sur la concaténation de chaîne. Votre linter a donc trouvé un exemple de concaténation de chaîne et a lancé une erreur pour vous rappeler que les littéraux de gabarit devraient être utilisés à la place (gardez à l'esprit que votre linter est configurable, donc vous avez activé ce paramètre ou le projet on essaie d'imposer un style de codage spécifique).
Donc, avec la règle no-useless-concat
,
// This will throw an error
"" + ANR + "|27.00";
// Use template literals instead
`${ANR}|27.00`;
Si vous voulez en savoir plus sur la règle (comment le désactiver, modifier le paramètre d'erreur, désactivez-le tous ensemble, etc.), puis est la documentation ici : https://eslint.org/docs/rules/no-useless-concat
Bien qu'il n'y ait rien de mal avec votre syntaxe en soi, ce ne est pas nécessaire pour les chaînes vides pad pour la chaîne conca tention si vous savez déjà que la valeur que vous imprimez est une chaîne. Faire ANR + 'something'
est assez, pas besoin de '' + ANR + 'something' + ''
. La seule fois où vous devez tamponner des chaînes vides est que vous vouliez vérifier que la valeur que vous étiez en train d'imprimer était cast to a string avant la concaténation, mais en général, vous voudriez connaître le type de données de la variable que vous imprimez avant de l'imprimer .
Tant que 'ANR' n'a pas' '' 'dedans, tout devrait bien se passer. – Mouser
Si ANR est déjà une chaîne juste faire 'cName: ANR,' – charlietfl
peut-être mettre à jour votre réponse avec cette information utile plutôt que juste dans le commentaire. . . – Andrew