src/content/docs/linter/rules/no-useless-escape-in-string.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="CSS" icon="seti:css"> ## Summary - Rule available since: `v2.0.0` - Diagnostic Category: [`lint/suspicious/noUselessEscapeInString`](/reference/diagnostics#diagnostic-category) - This rule is **recommended**, meaning it is enabled by default. - This rule has a [**safe**](/linter/#safe-fixes) fix. - The default severity of this rule is [**warning**](/reference/diagnostics#warning). ## How to configure ```json title="biome.json" { "linter": { "rules": { "suspicious": { "noUselessEscapeInString": "error" } } } }## Description
Disallow unnecessary escapes in string literals.
Escaping non-special characters in string literals doesn't have any effect.
Hence, they may confuse a reader.
## Examples
### Invalid
```css
a::after {
content: "\z"
}
a::after {
content: "\'"
}
a::after {
content: "\""
}
a::after {
content: "\n"
}
a::after {
content: "\e7bb"
}
## Description
Disallow unnecessary escapes in string literals.
Escaping non-special characters in string literals doesn't have any effect.
Hence, they may confuse a reader.
## Examples
### Invalid
```js
const s = "\a";
const o = {
"\a": 0,
};
const s = `${0}\a`;
const s = "\n";
In template literals, \${ and $\{ are valid escapes:
const s = `\${0}`;
Tagged string templates are ignored:
const s = tagged`\a`;
JSX strings are ignored:
<div attr="str\a"/>;