Skip to content

Enhancement: [no-duplicate-type-constituents] Prevent unnecessary | undefined for optional parameters #9203

Closed
@binoche9

Description

@binoche9

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 a function parameter (or a class property) is marked as optional with ?, it implicitly includes undefined in the type definition, so there is no need to explicitly add an | undefined to the type definition. I'd like to detect these cases and also autofix away the | undefined.

I don't think I see an existing rule to do this and it seems too complicated to do with no-restricted-syntax (though it wouldn't be able to autofix anyways).

Fail Cases

function foo(bar?: number | undefined) {
    return bar
}

Pass Cases

function foo(bar?: number) {
    return bar
}

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issueenhancementNew feature or requestlocked 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