no-setter-return
Запрещает возвращать значения из сеттеров
Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило
Сеттеры не могут возвращать значения.
Возвращение значения из сеттера не вызывает ошибку, но это значение игнорируется. Поэтому возвращение значения из сеттера либо не нужно, либо является возможной ошибкой, поскольку возвращённое значение нельзя использовать.
Описание правила
Это правило запрещает возвращать значения из сеттеров и сообщает о выражениях return в функциях-сеттерах.
Разрешён только return без значения, поскольку это инструкция управления потоком выполнения.
Это правило проверяет сеттеры в:
- Литералах объектов.
- Объявлениях и выражениях классов.
- Дескрипторах свойств в методах
Object.create,Object.defineProperty,Object.definePropertiesиReflect.definePropertyглобальных объектов.
Примеры некорректного кода для этого правила:
/*eslint no-setter-return: "error"*/
const 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"*/
const 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