跳转到内容

noSetterReturn

Diagnostic Category: lint/correctness/noSetterReturn

Since: v1.0.0

Sources:

Disallow returning a value from a setter

While returning a value from a setter does not produce an error, the returned value is being ignored. Therefore, returning a value from a setter is either unnecessary or a possible error.

Only returning without a value is allowed, as it’s a control flow statement.

class A {
set foo(x) {
return x;
}
}
code-block.js:3:9 lint/correctness/noSetterReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The setter should not return a value.

1 │ class A {
2 │ set foo(x) {
> 3 │ return x;
^^^^^^^^^
4 │ }
5 │ }

The setter is here:

1 │ class A {
> 2 │ set foo(x) {
^^^^^^^^^^^^
> 3 │ return x;
> 4 │ }
^
5 │ }
6 │

Returning a value from a setter is ignored.

const b = {
set foo(x) {
return x;
},
};
code-block.js:3:9 lint/correctness/noSetterReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The setter should not return a value.

1 │ const b = {
2 │ set foo(x) {
> 3 │ return x;
^^^^^^^^^
4 │ },
5 │ };

The setter is here:

1 │ const b = {
> 2 │ set foo(x) {
^^^^^^^^^^^^
> 3 │ return x;
> 4 │ },
^
5 │ };
6 │

Returning a value from a setter is ignored.

const c = {
set foo(x) {
if (x) {
return x;
}
},
};
code-block.js:4:13 lint/correctness/noSetterReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The setter should not return a value.

2 │ set foo(x) {
3 │ if (x) {
> 4 │ return x;
^^^^^^^^^
5 │ }
6 │ },

The setter is here:

1 │ const c = {
> 2 │ set foo(x) {
^^^^^^^^^^^^
> 3 │ if (x) {
> 4 │ return x;
> 5 │ }
> 6 │ },
^
7 │ };
8 │

Returning a value from a setter is ignored.

// early-return
class A {
set foo(x) {
if (x) {
return;
}
}
}
// not a setter
class B {
set(x) {
return x;
}
}