ember/require-super-in-lifecycle-hooks

January 29, 2026 ยท View on GitHub

๐Ÿ’ผ This rule is enabled in the โœ… recommended config.

๐Ÿ”ง This rule is automatically fixable by the --fix CLI option.

Call super in lifecycle hooks.

When overriding lifecycle hooks inside Ember Components, Controllers, Routes, Mixins, or Services, it is necessary to include a call to super.

Examples

Examples of incorrect code for this rule:

import Component from '@ember/component';

export default Component.extend({
  init() {
    this.set('items', []);
  },
});
import Component from '@ember/component';

export default Component.extend({
  didInsertElement() {
    // ...
  },
});
import Component from '@ember/component';

class Foo extends Component {
  init() {
    // ...
  }
}

Examples of correct code for this rule:

import Component from '@ember/component';

export default Component.extend({
  init(...args) {
    this._super(...args);
    this.set('items', []);
  },
});
import Component from '@ember/component';

export default Component.extend({
  didInsertElement(...args) {
    this._super(...args);
    // ...
  },
});
import Component from '@ember/component';

class Foo extends Component {
  init(...args) {
    super.init(...args);
    // ...
  }
}
import Component from '@ember/component';

class Foo extends Component {
  didInsertElement(...args) {
    super.didInsertElement(...args);
    // ...
  }
}

Configuration

NameDescriptionTypeDefault
checkInitOnlyWhether the rule should only check the init lifecycle hook and not other lifecycle hooks.Booleanfalse
checkNativeClassesWhether the rule should check lifecycle hooks in native classes (in addition to classic classes).Booleantrue