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.
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 }
const n = 1; function foo(s = "") {} class Bar { b = true; }