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

== Noncompliant Code Example

[source,javascript]
----
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

[source,javascript]
----
const n = 1;

function foo(s = "") {}

class Bar {
  b = true;
}
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

include::../highlighting.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
