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;
    }