Skip to content

Enhancement: [prefer-optional-chain] Also rewrite if (x) x.something() #6309

Open
@fregante

Description

@fregante

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

The rule apparently only tries to prevent a && a.b, but another way to write that is if (a) a.b

Could the rule be updated to include if conditions?

Fail

if (callback) {
  callback();
}

if (list) {
  list.push(item);
}

Pass

callback?.();

list?.push(item);

// Optional chaining doesn't apply here
if (callback) {
  callbacks.push(callback);
}

Additional Info

No response

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