npm / @angular-eslint/eslint-plugin
@angular-eslint/eslint-plugin
What changed in @angular-eslint/eslint-plugin 20 to 22, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
5 breaking8 new APIs and options3 behavior and defaults8 tooling20 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@angular-eslint/eslint-plugin 2223 changes
Breaking changes 4
Support for eslint v8 was dropped, so projects using that version must upgrade.
The legacy eslintrc config format is no longer supported.
The deprecated rule was removed, so configurations that enable it must remove it.
Now reports only components opting out of OnPush, not those omitting changeDetection; it is part of the recommended config, which may produce new reports.
New APIs and options 6
Adds the allowExplicitStandalone option to the prefer-standalone rule.
The rule disallows unconfigured properties.
Adds the additionalInjectFunctions option to inject-at-top.
Adds the allowProvidedInNull option to use-injectable-provided-in.
Adds the allowExplicitOnPush option; explicit OnPush is automatically removed when it is false.
The plugin now supports the Angular v22 @Service decorator.
Tooling 3
Adds a new ESLint rule for reactive contexts.
Adds a rule requiring inject() at the top of the class.
Adds the prefer-service-decorator rule.
Fixes and other changes 10
Rewrites emit calls of the removed output.
Ensures the prefix rule option schema is fully typed.
Ignores inherited primitive names.
Reports methods that are also called outside a DI context.
Stops reporting when input and output types differ.
Skips inputs that use the transform option.
Improves getter and function detection in the rule.
Covers @Component providers, viewProviders and styleUrls when checking for duplicates in metadata arrays.
Avoids a false positive for methods called from a constructor.
The suggestion message id was renamed from suggestAddChangeDetectionOnPush.
@angular-eslint/eslint-plugin 2112 changes
Breaking changes 1
The rule is formally deprecated and removed from the all config.
Behavior and default changes 3
The rule now detects Signal member access.
Defaults to prefix 'app'; selector validation is stricter, with style checks independent of prefix checks and more specific prefix failure reporting.
Defaults to prefix 'app'; selector validation is stricter, with style checks independent of prefix checks and more specific prefix failure reporting.
Tooling 4
Adds the computed-must-return rule.
The plugin adds support for ESLint v10.
Adds the no-implicit-takeuntil-destroyed ESLint rule.
Adds a rule encouraging the use of model() for two-way bindings.
Fixes and other changes 4
Appends fixes in this rule.
The rule now properly handles statements with unary operators.
The rule now detects the Signal type correctly.
The rule now checks InputSignalWithTransform.
@angular-eslint/eslint-plugin 209 changes
New APIs and options 2
The rule supports multiple configs, allowing developers to configure more than one component selector.
The rule supports multiple configs, allowing developers to configure more than one directive selector.
Tooling 1
Adds the prefer-host-metadata-property ESLint rule.
Fixes and other changes 6
Fixes false negatives when linting selectors that only contain a prefix.
Fixes false negatives when linting selectors that only contain a prefix.
Fixes false negatives when linting selectors that only contain a prefix.
Detects variables in component selectors.
Fixes the rule's fixer when a class contains generics.
Fixes false positives in the no-uncalled-signals rule.