Skip to content

Rule proposal: prefer-classlist-toggle #2709

@dangowans

Description

@dangowans

Description

This rule would simplify adding or removing a class based on a condition.

Examples

// ❌
if (condition) {
  element.classList.add('success');
} else {
  element.classList.remove('success');
}

// ✅
element.classList.toggle('success', condition);
// ❌
if (condition) {
  element.classList.remove('success');
} else {
  element.classList.add('success');
}

// ✅
// remove() is first, so negate the condition
element.classList.toggle('success', !(condition));

Proposed rule name

prefer-classlist-toggle

Additional Info

Very much in the same vein as the prefer-ternary rule.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions