Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Rule proposal: Preferring .find(...) over .filter(...)[0] #6886

Closed
@JoshuaKGoldberg

Description

@JoshuaKGoldberg

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • My proposal specifically checks TypeScript syntax, or it proposes a check that requires type information to be accurate.
  • My proposal is not a "formatting rule"; meaning it does not just enforce how code is formatted (whitespace, brace placement, etc).
  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Description

I've seen occasional code authors write code with a .filter returning element [0], perhaps not knowing that .find does the same thing. Perhaps we could write a rule that flags for this, and uses the type system to know whether the collection being .filtered is an array/array-like?

Fail Cases

const values = ['a', 'b ', 'c'];

const result = values.filter(value => value.includes(' '))[0];

Pass Cases

const values = ['a', 'b ', 'c'];

const result = values.find(value => value.includes(' '));

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issueenhancement: new plugin ruleNew rule request for eslint-pluginpackage: 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