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 } по умолчанию:
/*eslint max-params: ["error", 3]*/
(bar, baz, qux, qxx) {
doSomething();
}
let foo2 = (bar, baz, qux, qxx) {
doSomething();
};
Примеры правильного кода для этого правила с параметром { "max": 3 } по умолчанию:
/*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 для этого правила:
/*eslint max-params: ["error", { "max": 2, "countThis": "except-void" }]*/
function hasNoThis(this: void, first: string, second: string) {
// ...
}
/*eslint max-params: ["error", { "max": 2, "countThis": "never" }]*/
function hasThis(this: unknown[], first: string, second: string) {
// ...
}
Примеры неправильного кода TypeScript для этого правила:
/*eslint max-params: ["error", { "max": 2, "countThis": "always" }]*/
(this: void, first: string, second: string) {
// ...
}
/*eslint max-params: ["error", { "max": 2, "countThis": "except-void" }]*/
(this: unknown[], first: string, second: string) {
// ...
}
Связанные правила
Версия
Это правило появилось в ESLint v0.0.9.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/max-params