Skip to content

vue/return-in-computed-property

enforce that a return statement is present in computed property

  • ⚙️ This rule is included in all of "plugin:vue/essential", *.configs["flat/essential"], "plugin:vue/vue2-essential", *.configs["flat/vue2-essential"], "plugin:vue/strongly-recommended", *.configs["flat/strongly-recommended"], "plugin:vue/vue2-strongly-recommended", *.configs["flat/vue2-strongly-recommended"], "plugin:vue/recommended", *.configs["flat/recommended"], "plugin:vue/vue2-recommended" and *.configs["flat/vue2-recommended"].

📖 Rule Details

This rule enforces that a return statement is present in computed properties and functions.

<script> export default { computed: { /* ✓ GOOD */ foo() { if (this.bar) { return this.baz } else { return this.baf } }, bar: function () { return false }, /* ✗ BAD */ baz() { if (this.baf) { return this.baf } }, baf: function () {} } } </script>
Now loading...
<script> import { computed } from 'vue' export default { setup() { const foobar = useFoobar() /* ✓ GOOD */ const foo = computed(() => { if (foobar.bar) { return foobar.baz } else { return foobar.baf } }) const bar = computed(() => false) /* ✗ BAD */ const baz = computed(() => { if (foobar.baf) { return foobar.baf } }) const baf = computed(() => {}) } } </script>
Now loading...

🔧 Options

json
{
  "vue/return-in-computed-property": ["error", {
    "treatUndefinedAsUnspecified": true
  }]
}

This rule has an object option:

  • "treatUndefinedAsUnspecified": true (default) disallows implicitly returning undefined with a return statement.

treatUndefinedAsUnspecified: false

<script> export default { computed: { /* ✓ GOOD */ foo() { if (this.bar) { return undefined } else { return } }, bar: function () { return }, /* ✗ BAD */ baz() { if (this.baf) { return this.baf } }, baf: function () {} } } </script>
Now loading...

🚀 Version

This rule was introduced in eslint-plugin-vue v3.7.0

🔍 Implementation