pageClass | sidebarDepth | title | description | since |
---|---|---|---|---|
rule-details |
0 |
svelte/html-self-closing |
enforce self-closing style |
v2.5.0 |
enforce self-closing style
- 🔧 The
--fix
option on the command line can automatically fix some of the problems reported by this rule.
You can choose either two styles for elements without content.
- always:
<SomeComponent />
- never:
<SomeComponent></SomeComponent>
<script>
/* eslint svelte/html-self-closing: "error" */
</script>
<!-- ✓ GOOD -->
<p>Hello</p>
<div></div>
<img />
<svelte:head />
<svg><path /></svg>
<math><msup></msup></math>
<SomeComponent />
<!-- ✗ BAD -->
<div />
<div><div /></div>
<svelte:body></svelte:body>
<svg><path></path></svg>
<math><msup /></math>
<SomeComponent></SomeComponent>
presets:
config object:
{
"svelte/html-self-closing": [
"error",
{
"void": "always", // or "never" or "ignore"
"normal": "never", // or "always" or "ignore"
"svg": "always", // or "never" or "ignore"
"never": "never", // or "always" or "ignore"
"component": "always", // or "never" or "ignore"
"svelte": "always" // or "never" or "ignore"
}
]
}
presets:
default
- MathML and non-void HTML elements should have a closing tag; otherwise, they should be self-closing.all
- all elements should be self-closing (unless they have children)html
- html-compliant - only void elements and svelte special elements should be self-closingnone
- no elements should be self-closing
::: warning Note
We recommend selecting default
as the preset. Choosing any other option may result in settings that are inconsistent with the compiler when using Svelte5.
:::
config object:
void
("always"
in default preset)... Style of HTML void elementsnormal
("never"
in default preset)... Style of other elementssvg
("always"
in default preset)... Style of SVGmath
(never
in default preset)... Style of MathMLcomponent
("always"
in default preset)... Style of svelte componentssvelte
("always"
in default preset)... Style of svelte special elements (<svelte:head>
,<svelte:self>
)
::: warning
foreign
is removed in eslint-plugin-svelte
v3.
:::
Every config object option can be set to
- "always" (
<SomeComponent />
) - "never" (
<SomeComponent></SomeComponent>
) - "ignore" (either
<SomeComponent />
or<SomeComponent></SomeComponent>
)
This rule was introduced in eslint-plugin-svelte v2.5.0