Spec-Zone.ru › ESLint

max-params

Ограничение максимального числа параметров в определениях функций

Функции с большим числом параметров могут быть трудны для чтения и написания, поскольку необходимо запоминать, что представляет собой каждый параметр, каков его тип и в каком порядке они должны располагаться. Поэтому многие программисты придерживаются соглашения, ограничивающего число параметров функции.

function foo (bar, baz, qux, qxx) { // four parameters, may be too many
    doSomething();
}

Описание правила

Это правило ограничивает максимальное число параметров, разрешённых в определениях функций.

Параметры

Это правило принимает числовой параметр или объект:

  • "max" (по умолчанию 3) задаёт максимальное число параметров в определениях функций
  • "countThis" (по умолчанию "except-void", возможные значения: "always", "never" или "except-void") определяет, следует ли учитывать объявление this (только TypeScript)

Устарело: свойство объекта maximum устарело; используйте вместо него свойство объекта max. Устарело: свойство объекта countVoidThis устарело; используйте countThis: "except-void" вместо countVoidThis: false, а countThis: "always" вместо countVoidThis: true.

max

Примеры неправильного кода для этого правила с параметром { "max": 3 } по умолчанию:

Открыть в Playground
/*eslint max-params: ["error", 3]*/

function foo1 (bar, baz, qux, qxx) {
    doSomething();
}

let foo2 = (bar, baz, qux, qxx) => {
    doSomething();
};

Примеры правильного кода для этого правила с параметром { "max": 3 } по умолчанию:

Открыть в Playground
/*eslint max-params: ["error", 3]*/

function foo1 (bar, baz, qux) {
    doSomething();
}

let foo2 = (bar, baz, qux) => {
    doSomething();
};

countThis (только TypeScript)

Это правило имеет специфичный для TypeScript параметр countThis, который позволяет учитывать объявление this. Допустимые значения:

  • "always": любая аннотация типа this будет учитываться как параметр
  • "never": this никогда не будет учитываться
  • "except-void": this будет учитываться, только если его тип не void. Эквивалент устаревшего параметра countVoidThis: false.

Примеры правильного кода TypeScript для этого правила:

Открыть в Playground
/*eslint max-params: ["error", { "max": 2, "countThis": "except-void" }]*/

function hasNoThis(this: void, first: string, second: string) {
	// ...
}
Открыть в Playground
/*eslint max-params: ["error", { "max": 2, "countThis": "never" }]*/

function hasThis(this: unknown[], first: string, second: string) {
	// ...
}

Примеры неправильного кода TypeScript для этого правила:

Открыть в Playground
/*eslint max-params: ["error", { "max": 2, "countThis": "always" }]*/

function hasNoThis(this: void, first: string, second: string) {
	// ...
}
Открыть в Playground
/*eslint max-params: ["error", { "max": 2, "countThis": "except-void" }]*/

function hasThis(this: unknown[], first: string, second: string) {
	// ...
}

Связанные правила

  • complexity
  • max-depth
  • max-len
  • max-lines
  • max-lines-per-function
  • max-nested-callbacks
  • max-statements

Версия

Это правило появилось в ESLint v0.0.9.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/max-params

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API