operator-linebreak
Принудительный стиль переноса строки для операторов
Некоторые проблемы, выявленные этой правилом, автоматически исправляются с помощью параметра командной строки --fix командной строки
Это правило было устаревшим в ESLint v8.53.0. Пожалуйста, используйте соответствующее правило в @stylistic/eslint-plugin-js.
Когда оператор слишком длинный для одной строки, перенос строки обычно вставляется рядом с операторами, разделяющими выражения. Первым приходящим в голову стилем является размещение оператора в конце строки, следуя правилам английской пунктуации.
var fullHeight = borderTop +
innerHeight +
borderBottom;
Некоторые разработчики считают, что размещение операторов в начале строки делает код более читабельным.
var fullHeight = borderTop
+ innerHeight
+ borderBottom;
Подробное описание правила
Это правило принуждает к согласованному стилю переноса строки для операторов.
Параметры
Это правило имеет два параметра: строковый и объектный.
Строковый параметр:
-
"after"требует переноса строки после оператора -
"before"требует переноса строки перед оператором -
"none"запрещает переносы строк по обе стороны оператора
Объектный параметр:
-
"overrides"переопределяет глобальную настройку для указанных операторов
Значение по умолчанию — "after", { "overrides": { "?": "before", ":": "before" } }
после
Примеры некорректного кода для этого правила с параметром "after":
/*eslint operator-linebreak: ["error", "after"]*/
foo = 1
2;
foo = 1
2;
foo
5;
if (someCondition
otherCondition) {
}
answer = everything
42
foo;
class Foo {
a
1;
[b]
2;
[c
]
3;
}
Примеры корректного кода для этого правила с параметром "after":
/*eslint operator-linebreak: ["error", "after"]*/
foo = 1 + 2;
foo = 1 +
2;
foo =
5;
if (someCondition ||
otherCondition) {
}
answer = everything ?
42 :
foo;
class Foo {
a =
1;
[b] =
2;
[c
] =
3;
d = 4;
}
перед
Примеры некорректного кода для этого правила с параметром "before":
/*eslint operator-linebreak: ["error", "before"]*/
foo = 1
2;
foo
5;
if (someCondition
otherCondition) {
}
answer = everything
42
foo;
class Foo {
a
1;
[b]
2;
[c
]
3;
}
Примеры корректного кода для этого правила с параметром "before":
/*eslint operator-linebreak: ["error", "before"]*/
foo = 1 + 2;
foo = 1
+ 2;
foo
= 5;
if (someCondition
|| otherCondition) {
}
answer = everything
? 42
: foo;
class Foo {
a
= 1;
[b]
= 2;
[c
]
= 3;
d = 4;
}
нигде
Примеры некорректного кода для этого правила с параметром "none":
/*eslint operator-linebreak: ["error", "none"]*/
foo = 1
2;
foo = 1
2;
if (someCondition
otherCondition) {
}
if (someCondition
otherCondition) {
}
answer = everything
42
foo;
answer = everything
42
foo;
class Foo {
a
1;
[b]
2;
[c
]
3;
d
4;
[e]
5;
[f
]
6;
}
Примеры корректного кода для этого правила с параметром "none":
/*eslint operator-linebreak: ["error", "none"]*/
foo = 1 + 2;
foo = 5;
if (someCondition || otherCondition) {
}
answer = everything ? 42 : foo;
class Foo {
a = 1;
[b] = 2;
[c
] = 3;
d = 4;
[e] = 5;
[f
] = 6;
}
переопределения
Примеры дополнительного некорректного кода для этого правила с параметром { "overrides": { "+=": "before" } }:
/*eslint operator-linebreak: ["error", "after", { "overrides": { "+=": "before" } }]*/
var thing = 'thing';
thing
's';
Примеры дополнительного корректного кода для этого правила с параметром { "overrides": { "+=": "before" } }:
/*eslint operator-linebreak: ["error", "after", { "overrides": { "+=": "before" } }]*/
var thing = 'thing';
thing
+= 's';
Примеры дополнительного корректного кода для этого правила с параметром { "overrides": { "?": "ignore", ":": "ignore" } }:
/*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }]*/
answer = everything ?
42
: foo;
answer = everything
?
42
:
foo;
Примеры некорректного кода для этого правила с параметром по умолчанию "after", { "overrides": { "?": "before", ":": "before" } }:
/*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "before", ":": "before" } }]*/
foo = 1
2;
foo = 1
2;
foo
5;
if (someCondition
otherCondition) {
}
answer = everything
42
foo;
Примеры корректного кода для этого правила с параметром по умолчанию "after", { "overrides": { "?": "before", ":": "before" } }:
/*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "before", ":": "before" } }]*/
foo = 1 + 2;
foo = 1 +
2;
foo =
5;
if (someCondition ||
otherCondition) {
}
answer = everything
? 42
: foo;
Когда не следует использовать это правило
Если в вашем проекте не будет использоваться общий стиль переноса строки операторов, отключите это правило.
Связанные правила
Версия
Это правило было добавлено в ESLint v0.19.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/operator-linebreak