# svelte/prefer-class-directive

require class directives instead of ternary expressions

  • πŸ”§ The --fix option on the command line can automatically fix some of the problems reported by this rule.

# πŸ“– Rule Details

This rule aims to replace a class with ternary operator with the class directive.

<script>
  /* eslint svelte/prefer-class-directive: ["error", {"prefer": "empty"}] */
  const selected = true;
</script>

<!-- βœ“ GOOD -->
<button class:selected>foo</button>
<button class:selected={current === 'foo'}>foo</button>

<!-- βœ— BAD -->
<button class=
Unexpected class using the ternary operator. (svelte/prefer-class-directive)
{selected ? 'selected' : ''}
>foo</button>
<button class=
Unexpected class using the ternary operator. (svelte/prefer-class-directive)
{current === 'foo' ? 'selected' : ''}
>foo</button>

You cannot enforce this style by using prettier-plugin-svelte. That is, this rule does not conflict with prettier-plugin-svelte and can be used with prettier-plugin-svelte.

# πŸ”§ Options

{
  "svelte/html-quotes": [
    "error",
    {
      "prefer": "empty" // or "always"
    }
  ]
}
  • prefer … Whether to apply this rule always or just when there’s an empty string. Default is "empty".
    • "empty" … Requires class directives only if one of the strings is empty.
    • "always" … Requires class directives always rather than interpolation.

# πŸ“š Further Reading

# πŸš€ Version

This rule was introduced in eslint-plugin-svelte v0.0.1

# πŸ” Implementation