Skip to content

Enhancement: [prefer-optional-chain] Suggest !foo || !foo.bar as a valid match for the rule #5245

@omril1

Description

@omril1

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/prefer-optional-chain/

Description

I propose that the prefer-optional-chain rule should also check for !foo || !foo.bar the boolean alternative form of !(foo && foo.bar) to be suggested as !foo?.bar

Fail

!foo || !foo.bar;

!foo || !foo[bar];

!foo || !foo.bar || !foo.bar.baz || !foo.bar.baz();

Pass

!foo?.bar;

!foo?.[bar];

!foo?.bar?.baz?.();

Additional Info

Willing to open a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issueenhancement: plugin rule optionNew rule option for an existing eslint-plugin rulepackage: 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