Skip to content

arrayMutableReverses

Reports .reverse() calls on arrays that mutate the original array.

✅ This rule is included in the ts stylistic preset.

The .reverse() method mutates the original array in place. Using .toReversed() instead returns a new reversed array without modifying the original, making code more predictable and avoiding unintended side effects.

const values = [1, 2, 3];
const reversed = values.reverse();
const items = ["a", "b", "c"];
doSomething(items.reverse());
const data = [1, 2, 3];
const result = [...data].reverse();

This rule is not configurable.

If you intentionally want to mutate the original array in place, or if you’re working in an environment that doesn’t support .toReversed() (ES2023+), you may want to disable this rule. Note that .reverse() is still allowed when used as a standalone expression statement since the mutation is likely intentional in that case.

Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.