Skip to content

no-useless-predicate: check optional chaining, nullish coalescing and conditional assignment #748

@ajafff

Description

@ajafff

This was the last remaining work item from #717.

"foo"?.length; // unnecessary optional chain
"foo" ?? "bar"; // unnecessary nullish coalescing

declare let obj: { prop: string } | undefined;
obj?.prop?.length; // optional chain is valid, second is unnecessary

let a = 'foo';
a ||= 'bar'; // 'a' is always truthy, assignment never occurs
a ??= 'bar'; // 'a' is never nullish, assignment never occurs
a &&= 'bar'; // 'a' is always truthy, assignment always occurs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions