-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Open
Labels
accepting prsGo ahead, send a pull request that resolves this issueGo ahead, send a pull request that resolves this issueblocked by another issueIssues which are not ready because another issue needs to be resolved firstIssues which are not ready because another issue needs to be resolved firstenhancement: plugin rule optionNew rule option for an existing eslint-plugin ruleNew rule option for an existing eslint-plugin rulepackage: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I have searched for related issues and found none that match my proposal.
- I have searched the current rule list and found no rules that match my proposal.
- I have read the FAQ and my problem is not listed.
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
Labels
accepting prsGo ahead, send a pull request that resolves this issueGo ahead, send a pull request that resolves this issueblocked by another issueIssues which are not ready because another issue needs to be resolved firstIssues which are not ready because another issue needs to be resolved firstenhancement: plugin rule optionNew rule option for an existing eslint-plugin ruleNew rule option for an existing eslint-plugin rulepackage: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin