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.

## Noncompliant Code Example

    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

## Compliant Solution

    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