Skip to content

Latest commit

 

History

History
44 lines (28 loc) · 1.69 KB

no-implicit-service-injection-argument.md

File metadata and controls

44 lines (28 loc) · 1.69 KB

ember/no-implicit-service-injection-argument

🔧 This rule is automatically fixable by the --fix CLI option.

This rule disallows omitting the service name argument when injecting a service. Instead, the filename of the service should be used (i.e. service-name when the service lives at app/services/service-name.js).

Some developers may prefer to be more explicit about what service is being injected instead of relying on the implicit and potentially costly lookup/normalization of the service from the property name.

Note: this rule is not in the recommended configuration because it is somewhat of a stylistic preference and it's not always necessary to explicitly include the service injection argument.

Examples

Examples of incorrect code for this rule:

import Component from '@ember/component';
import { inject as service } from '@ember/service';

export default class Page extends Component {
  @service() serviceName;
}

Examples of correct code for this rule:

import Component from '@ember/component';
import { inject as service } from '@ember/service';

export default class Page extends Component {
  @service('service-name') serviceName;
}

Related Rules

References