Skip to content

prefer-immutable-module-constant

Require module-level constant collections to expose readonly state.

Why

A const binding prevents reassignment but does not stop callers from mutating its array, object, Set, or Map contents.

Fix

Expose literals with as const or a readonly type, and expose Set or Map values through ReadonlySet or ReadonlyMap.

Examples

Before — flagged A module constant exposes a mutable array
src/constants.ts
const VALUES = [1, 2, 3];
After — preferred A module constant exposes a readonly literal
src/constants.ts
const VALUES = [1, 2, 3] as const;