Skip to content

Rule proposal: Unreachable swtich default case #7627

Closed as not planned
Closed as not planned
@kkimdev

Description

@kkimdev

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • My proposal specifically checks TypeScript syntax, or it proposes a check that requires type information to be accurate.
  • My proposal is not a "formatting rule"; meaning it does not just enforce how code is formatted (whitespace, brace placement, etc).
  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Description

When all the enum cases are listed in a switch statement, default: block is unreachable. To my knowledge, there is no existing rule that detects such cases.

Note: This could be a special case of a more general unreachable code detection rule.

Fail Cases

enum Animal {
    cow
}

const main = (animal: Animal) => {
    switch (animal) {
        case Animal.cow:
            return 3;
        default:
            return 4;
    }
};

Pass Cases

enum Animal {
    cow,
    horse
}

const main = (animal: Animal) => {
    switch (animal) {
        case Animal.cow:
            return 3;
        default:
            return 4;
    }
};

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existsenhancement: new plugin ruleNew rule request for eslint-pluginpackage: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions