Unnecessarily verbose declarations and initializations make it harder to read the code, and should be simplified. Specifically, primitive (number, string, and boolean) types should be omitted from variable and parameter declaration when they can be easily inferred from the initialized or defaulted value.

Noncompliant Code Example

const n: number = 1; // Noncompliant, "number" can be omitted

function foo(s: string = "") {} // Noncompliant, "string" can be omitted

class Bar {
  b: boolean = true;  // Noncompliant, "boolean" can be omitted
}

Compliant Solution

const n = 1;

function foo(s = "") {}

class Bar {
  b = true;
}