Rules overview
The plugin ships 12 rules under the @rx-angular namespace. Each links to its own reference page. None of the rules are auto-fixable (no fixable metadata); they report but do not rewrite. The six no-zone-* rules are legacy-guarded: they only do anything when Zone.js is present and are a no-op under zoneless Angular (v21+). See Zoneless & how Zone.js affected change detection for why.
To turn these on, see how to install and configure.
| Rule | What it flags | Fixable? | Legacy-guarded? |
|---|---|---|---|
no-explicit-change-detection-apis | Explicit calls to change-detection APIs (detectChanges/markForCheck). | No | No |
no-rxstate-imperative-in-reactive | Mixing imperative RxState methods inside reactive methods. | No | No |
no-rxstate-subscriptions-outside-constructor | RxState subscription methods called outside the constructor. | No | No |
no-zone-critical-browser-apis | Zone-patched browser scheduling APIs (setTimeout, setInterval, requestAnimationFrame, …). | No | Yes (Zone.js only) |
no-zone-critical-lodash-apis | Zone-related Lodash APIs. | No | Yes (Zone.js only) |
no-zone-critical-rxjs-creation-apis | Zone-critical RxJS creation APIs. | No | Yes (Zone.js only) |
no-zone-critical-rxjs-operators | Zone-critical RxJS operators. | No | Yes (Zone.js only) |
no-zone-critical-rxjs-schedulers | RxJS schedulers (Zone-critical). | No | Yes (Zone.js only) |
no-zone-run-apis | NgZone.run* APIs (run, runOutsideAngular, …). | No | Yes (Zone.js only) |
prefer-no-layout-sensitive-apis | Layout-sensitive APIs that may trigger style recalculation. | No | No |
prefer-no-lodash-clone-deep | Usages of Lodash cloneDeep. | No | No |
prefer-no-lodash-is-equal | Usages of Lodash isEqual. | No | No |
Presets
recommendedenables the change-detection, RxState-discipline, layout, and lodash rules;no-zone-run-apisis set towarn; the other fiveno-zone-*rules are not included.zonelessis a standalone preset — it includes the change-detection rule, all sixno-zone-*rules aterror, and the layout/lodash rules, but does not include the two RxState-discipline rules (no-rxstate-imperative-in-reactive,no-rxstate-subscriptions-outside-constructor). Users who want both sets should extendrecommendedand additionally enable the zone rules manually.
See install & configure for how to extend a preset or enable rules individually.
See also
- How-to: Install and configure the ESLint plugin.
- Concept: Zoneless & how Zone.js affected change detection: why the six
no-zone-*rules are legacy-guarded.