Why is this an issue?

readonly fields can only be assigned in a class constructor. If a class has a field that’s not marked readonly but is only set in the constructor, it could cause confusion about the field’s intended use. To avoid confusion, such fields should be marked readonly to make their intended use explicit, and to prevent future maintainers from inadvertently changing their use.

How to fix it

Mark the given field with the readonly modifier.

Code examples

Noncompliant code example

class Person {
  private birthYear: number; // Noncompliant

  constructor(birthYear: number) {
    this.birthYear = birthYear;
  }
}

Compliant solution

class Person {
  private readonly birthYear: number;

  constructor(birthYear: number) {
    this.birthYear = birthYear;
  }
}

Resources

Documentation