Skip to content

Enhancement: [switch-exhaustiveness-check] Turn on requireDefaultForNonUnion by default #7966

Closed as not planned
@ST-DDT

Description

@ST-DDT

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

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Link to the rule's documentation

https://typescript-eslint.io/rules/switch-exhaustiveness-check/

Description

This issue is there to discuss whether the requireDefaultForNonUnion option should be enabled by default.
This issue is not about whether the switch-exhaustiveness-check should be part of any preset or the option to be removed entirely.

Fail

declare const value: number;
switch (value) {
  case 0:
    return 0;
  case 1:
    return 1;
}

Pass

declare const value: number;
switch (value) {
  case 0:
    return 0;
  case 1:
    return 1;
  default:
    return -1;
}

Additional Info

Based on #7880 (comment)

Partial previous discussion: #2959

Metadata

Metadata

Assignees

No one assigned

    Labels

    breaking changeThis change will require a new major version to be releasedenhancement: plugin rule optionNew rule option for an existing eslint-plugin ruleevaluating community engagementwe're looking for community engagement on this issue to show that this problem is widely importantlocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: 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