no-setter-return
Запрет возвращения значений из сетеров
Использование конфигурации recommended из @eslint/js в файле конфигурации включает данное правило
Сетеры не могут возвращать значения.
Хотя возвращение значения из сетера не приводит к ошибке, возвращаемое значение игнорируется. Поэтому возвращение значения из сетера либо излишне, либо потенциально является ошибкой, поскольку возвращённое значение не может быть использовано.
Подробное описание правила
Это правило запрещает возвращение значений из сетеров и сообщает об операторах return в функциях-сетерах.
Допускаются только операторы return без значения, поскольку это операторы управления потоком.
Это правило проверяет сетеры в:
- Объектных литералах.
- Объявлениях классов и выражениях классов.
- Дескрипторах свойств в
Object.create,Object.defineProperty,Object.defineProperties, иReflect.definePropertyметодах глобальных объектов.
Примеры некорректного кода для этого правила:
/*eslint no-setter-return: "error"*/
var foo = {
set a(value) {
this.val = value;
}
};
class Foo {
set a(value) {
this.val = value * 2;
}
}
const Bar = class {
static set a(value) {
if (value < 0) {
this.val = 0;
}
this.val = value;
}
};
Object.defineProperty(foo, "bar", {
set(value) {
if (value < 0) {
}
this.val = value;
}
});
Примеры корректного кода для этого правила:
/*eslint no-setter-return: "error"*/
var foo = {
set a(value) {
this.val = value;
}
};
class Foo {
set a(value) {
this.val = value * 2;
}
}
const Bar = class {
static set a(value) {
if (value < 0) {
this.val = 0;
return;
}
this.val = value;
}
};
Object.defineProperty(foo, "bar", {
set(value) {
if (value < 0) {
throw new Error("Negative value.");
}
this.val = value;
}
});
Обработка TypeScript
Безопасно отключить это правило при использовании TypeScript, поскольку компилятор TypeScript выполняет эту проверку.
Связанные правила
Версия
Это правило было введено в ESLint v6.7.0.
Дополнительное чтение
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-setter-return