Skip to content

Enhancement: [prefer-nullish-coalescing] revisit considering any/unknown possibly-nullish #10694

@kirkwaiblinger

Description

@kirkwaiblinger

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-nullish-coalescing/

Description

In #8262, a bug was fixed around prefer-nullish-coalescing's use of isNullableType(). However, it was mentioned during the PR (and I agree) that we probably should use the behavior in isNullableType() and just adapt the rule implementation details to not crash on it, see #8262 (comment).

Fail

// ignorePrimitives: /* all set to false */
declare const u: unknown;
const foo = u || 'bar'

Pass

// ignorePrimitives: /* all set to false */
declare const u: unknown;
const foo = u ?? 'bar'

// ignorePrimitives: /* any set to true */
declare const u: unknown;
const foo = u || 'bar'

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 rulelocked 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