Use a + with two numbers and you'll get addition. But use it with a string and anything else, and you'll get concatenation. Very often that's not what's intended, and even when it is, it's likely to confuse future maintainers.
Since this may not be what's intended, this rule raises an issue when + is used with a string and a non-string.
var a = '42'; var b = 5; var sum = a + b; // Noncompliant; yields string "425" var foo = ' is a lucky number'; alert(42 + foo); // Noncompliant; make your intention explicit
var a = '42';
var b = 5;
var sum = parseInt(a) + b; // Compliant; yields 47
var foo = ' is a lucky number';
alert('' + 42 + foo); // Use an empty string literal
alert(`${42}${foo}`); // Use template strings; available since ES2015