🌐 AI搜索 & 代理 主页
Skip to content

Enhancement: [no-unnecessary-condition] detect unnecessary calls to Array.isArray #11716

@ulrichstark

Description

@ulrichstark

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/no-unnecessary-condition

Description

I constantly see LLMs generating code that checks variables by calling Array.isArray on them despite them being strictly typed as array. Adding logic into no-unnecessary-condition to detect these redundant calls would reduce code by avoiding unnecessary conditions and helps in reviewing AI generated code.

Fail

const items: number[] = [1, 2, 3];
if (Array.isArray(items)) {
  console.log("items is an array");
}

Pass

const items: number[] | null = [1, 2, 3];
if (Array.isArray(items)) {
  console.log("items is an array");
}

Additional Info

Maybe also include logic to detect unnecessary items instanceof Array?

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issueblocked by another issueIssues which are not ready because another issue needs to be resolved firstenhancement: 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