8000 Bug: [no-unnecessary-condition] False positive for generic type · Issue #6902 · typescript-eslint/typescript-eslint · GitHub
[go: up one dir, main page]

Skip to content
Bug: [no-unnecessary-condition] False positive for generic type #6902
Closed
@KleaTech

Description

@KleaTech

Before You File a Bug Report Please Confirm You Have Done The Following...

  • I have tried restarting my IDE and the issue persists.
  • I have updated to the latest version of the packages.
  • I have searched for related issues and found none that matched my issue.
  • I have read the FAQ and my problem is not listed.

Playground Link

https://typescript-eslint.io/play/#ts=5.0.3&sourceType=module&code=GYVwdgxgLglg9mABAUwB4EMC2AHANsgHgBUA+ACgChFF0AnAcwC5EiAaKxTdbZsmKZJmZEAlIgC8JGmACeExP0ESpizIgD86xAHJtFMQG8AvhTRY8yMmBC5cIgNxA&eslintrc=N4KABGBEBOCuA2BTAzpAXGUEKQAIBcBPABxQGNoBLY-AWhXkoDt8B6Jge1tiacTJTIAhtEK0yHJgBNK+SpPRQA7iKaRwYAL4hNQA&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkJemy0eAcgK6qoDCAFutAGsylBm3QAacDUhFYAVSJsS6ACYAFAIaYN8dHizCwAMw2plkmlFkKlqgDKxopwybPopAXxAegA

Repro Code

function example<T>(
    arg: T,
    map: (item: T) => any = item => item ?? ''
) {}
example(null);

ESLint Config

{
  "rules": {
    "@typescript-eslint/no-unnecessary-condition": "warn"
  }
}

tsconfig

{
  "compilerOptions": {
    "strictNullChecks": true
  }
}

Expected Result

No eslint errors.

Actual Result

Unnecessary conditional, expected left-hand side of ?? operator to be possibly null or undefined

Additional Info

Left-hand side of ?? operator can clearly be null as shown with the example(null) call.
Type hint for the example(null) call is the following:
function example<null>(arg: null, map?: (item: null) => any): void

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issuebugSomething isn't workingpackage: 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

      0