sindresorhus/eslint-plugin-unicorn

Rule proposal: `no-unused-return-value`

Chiusa

#741 aperta il 22 mag 2020

 (11 commenti) (25 reazioni) (0 assegnatari)JavaScript (468 fork)user submission
help wantednew rule

Metriche repository

Star
 (5022 stelle)
Metriche merge PR
 (Merge medio 1g 16h) (399 PR mergiate in 30 g)

Descrizione

Details here: https://github.com/eslint/eslint/issues/12980

The idea is that many builtin functions return values and if those return values are not used, the code is essentially a noop and can be removed.

The discussion got stale because it seems hard for a plugin to correctly judge the type of a variable which is essential for a rule like this so it may require Typescript to really be useful. Also there was the problem of getters which would trigger false positives but I generally see getters as a obscure feature that should not be used.

Fail

const arr = [{name: 'eslint'}];
arr.map(item => item.name); // error: Unused Array.prototype.map return value
console.log(arr);

Pass

const arr = [{name: 'eslint'}];
console.log(arr);

Fail

let i = 0;
const arr = [1,2,3];
arr.map((item) => {  // error: Unused Array.prototype.map return value
  i += 1;
});

Pass

let i = 0;
const arr = [1,2,3];
arr.forEach((item) => {
  i += 1;
});

Guida contributor