no-setter-return
Disallow returning values from setters
        ✅ Recommended
        
            The "extends": "eslint:recommended" property in a configuration file enables this rule
        
设置器不能有返回值。
虽然从 setter 返回一个值不会产生错误,但返回的值被忽略了。因此,从 setter 返回一个值要么是不必要的,要么是一个可能的错误,因为返回的值不能被使用。
规则细节
使用此规则禁用从 setter 返回值,并在 setter 函数中报告return 语句。
只有没有值的 return 是允许的,因为它是一个控制流语句。
这条规则会检查以下范围中的设置器:
- 对象字面量。
 - 类声明和类表达式。
 - 全局对象的 
Object.create、Object.defineProperty、Object.defineProperties和Reflect.defineProperty方法中的属性描述词。 
使用此规则的错误示例:
                            
                                Open in Playground
                            
/*eslint no-setter-return: "error"*/
var foo = {
    set a(value) {
        this.val = value;
        return value;
    }
};
class Foo {
    set a(value) {
        this.val = value * 2;
        return this.val;
    }
}
const Bar = class {
    static set a(value) {
        if (value < 0) {
            this.val = 0;
            return 0;
        }
        this.val = value;
    }
};
Object.defineProperty(foo, "bar", {
    set(value) {
        if (value < 0) {
            return false;
        }
        this.val = value;
    }
});
使用此规则的正确示例:
                            
                                Open in Playground
                            
            /*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;
    }
});
Handled by TypeScript
It is safe to disable this rule when using TypeScript because TypeScript's compiler enforces this check.
Related Rules
Version
This rule was introduced in ESLint v6.7.0.