Enforce Usage of Spacing in Template Strings (template-curly-spacing)

We can embed expressions in template strings with using a pair of ${ and }. This rule can force usage of spacing inside of the curly brace pair according to style guides.

let hello = `hello, ${people.name}!`;

Fixable: This rule is automatically fixable using the --fix flag on the command line.

Rule Details

This rule aims to maintain consistency around the spacing inside of template literals.

Options

{
    "template-curly-spacing": [2, "never"]
}

This rule has one option which has either "never" or "always" as value.

The following patterns are considered problems when configured "never":

/*eslint template-curly-spacing: 2*/

`hello, ${ people.name}!`;  /*error Unexpected space(s) after '${'.*/
`hello, ${people.name }!`;  /*error Unexpected space(s) before '}'.*/

`hello, ${ people.name }!`; /*error Unexpected space(s) after '${'.*/
                            /*error Unexpected space(s) before '}'.*/

The following patterns are considered problems when configured "always":

/*eslint template-curly-spacing: [2, "always"]*/

`hello, ${ people.name}!`;  /*error Expected space(s) before '}'.*/
`hello, ${people.name }!`;  /*error Expected space(s) after '${'.*/

`hello, ${people.name}!`;   /*error Expected space(s) after '${'.*/
                            /*error Expected space(s) before '}'.*/

The following patterns are not considered problems when configured "never":

/*eslint template-curly-spacing: 2*/

`hello, ${people.name}!`;

`hello, ${
    people.name
}!`;

The following patterns are not considered problems when configured "always":

/*eslint template-curly-spacing: [2, "always"]*/

`hello, ${ people.name }!`;

`hello, ${
    people.name
}!`;

When Not To Use It

If you don’t want to be notified about usage of spacing inside of template strings, then it’s safe to disable this rule.

Version

This rule was introduced in ESLint 2.0.0-rc.0.

Resources