Skip to content

Latest commit

 

History

History
113 lines (82 loc) · 1.8 KB

getter-return.md

File metadata and controls

113 lines (82 loc) · 1.8 KB
title rule_type handled_by_typescript further_reading
getter-return
problem
true

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:

::: incorrect

/*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:

::: correct

/*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 returning undefined with a return statement.

Examples of correct code for the { "allowImplicit": true } option:

::: correct

/*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.