getter-return
Enforce return
statements in getters
The "extends": "eslint:recommended"
property in a configuration file enables this rule
The get syntax binds an object property to a function that will be called when that property is looked up. It was first introduced in ECMAScript 5:
var p = {
get name(){
return "nicholas";
}
};
Object.defineProperty(p, "age", {
get: function (){
return 17;
}
});
Note that every getter
is expected to return a value.
Rule Details
This rule enforces that a return statement is present in property getters.
Examples of incorrect code for this rule:
/*eslint getter-return: "error"*/
p = {
get name(){
// no returns.
}
};
Object.defineProperty(p, "age", {
get: function (){
// no returns.
}
});
class P{
get name(){
// no returns.
}
}
Examples of correct code for this rule:
/*eslint getter-return: "error"*/
p = {
get name(){
return "nicholas";
}
};
Object.defineProperty(p, "age", {
get: function (){
return 18;
}
});
class P{
get name(){
return "nicholas";
}
}
Options
This rule has an object option:
"allowImplicit": false
(default) disallows implicitly returningundefined
with areturn
statement.
Examples of correct code for the { "allowImplicit": true }
option:
/*eslint getter-return: ["error", { allowImplicit: true }]*/
p = {
get name(){
return; // return undefined implicitly.
}
};
When Not To Use It
If your project will not be using ES5 property getters you do not need this rule.
Handled by TypeScript
It is safe to disable this rule when using TypeScript because TypeScript's compiler enforces this check.
Version
This rule was introduced in ESLint v4.2.0.