prefer-readonly Require readonly for private fields never mutated after initialization A private field that is never mutated after initialization grants unnecessary write access inside its declaration. Instead, you SHOULD mark the field readonly so later mutation is rejected. - Category: style - Level: warning - Fix: automatic - Scope: module Reported class User { private name: string; constructor(name: string) { this.name = name; } describe(): string { return this.name; } } Accepted class User { private readonly name: string; constructor(name: string) { this.name = name; } describe(): string { return this.name; } } Prior art - typescript-eslint ยท prefer-readonly language/linter/src/rules/style/preferreadonly.rs:9