Disallow unnecessary concatenation of strings (no-useless-concat)

禁止没有必要的字符拼接 (no-useless-concat)

It’s unnecessary to concatenate two strings together, such as:


var foo = "a" + "b";

This code is likely the result of refactoring where a variable was removed from the concatenation (such as "a" + b + "b"). In such a case, the concatenation isn’t important and the code can be rewritten as:

这段代码像是在拼接中移除了某个变量的重构造成的(比如 "a" + b + "b")。在这种情况下,拼接不是重要的,代码可以被写成如下形式:

var foo = "ab";

Rule Details

This rule aims to flag the concatenation of 2 literals when they could be combined into a single literal. Literals can be strings or template literals.


Examples of incorrect code for this rule:

错误 代码示例:

/*eslint no-useless-concat: "error"*/
/*eslint-env es6*/

var a = `some` + `string`;

// these are the same as "10"
var a = '1' + '0';
var a = '1' + `0`;
var a = `1` + '0';
var a = `1` + `0`;

Examples of correct code for this rule:

正确 代码示例:

/*eslint no-useless-concat: "error"*/

// when a non string is included
var c = a + b;
var c = '1' + a;
var a = 1 + '1';
var c = 1 - 2;
// when the string concatenation is multiline
var c = "foo" +

When Not To Use It

If you don’t want to be notified about unnecessary string concatenation, you can safely disable this rule.



This rule was introduced in ESLint 1.3.0.

该规则在 ESLint 1.3.0 中被引入。