A long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the function is doing too many things.

Noncompliant Code Example

With a maximum number of 4 parameters:

function doSomething(param1, param2, param3, param4, param5) {
...
}

Compliant Solution

function doSomething(param1, param2, param3, param4) {
...
}

Exceptions

The rule ignores constructors where parameters are all parameter properties:

class C {
  constructor(
    private param1: number,
    private param2: boolean,
    private param3: string,
    private param4: string[],
    private param5: number | string
  ) {}
}

The rule also ignores Angular component constructors:

import { Component } from '@angular/core';

@Component({/* ... */})
class Component {
  constructor(p1, p2, p3, p4, p5) {}
}