[중요도 낮음] ESLint의 promise/param-names 규칙

KUKJIN LEE • 2일 전 작성
해당 경고는 eslint-plugin-promise
의 param-names
규칙에 의해 발생한 것. 새로운 Promise 객체를 생성할 때 매개변수의 이름과 순서를 일관되게 사용하도록 강제합니다. 따라서 매개변수 이름을 resolve
와 reject
로 지정하고, 이 순서를 지켜야 합니다.
Promise
생성자를 사용할 때, 매개변수의 이름과 순서를 일관되게 지정하는 것은 코드의 가독성과 유지보수성에 큰 영향을 미칩니다. ESLint의 promise/param-names
규칙은 이러한 일관성을 강제하여 개발자가 표준화된 코드를 작성하도록 도와줍니다.
규칙 설명
promise/param-names
규칙은 새로운 Promise
객체를 생성할 때, 매개변수의 이름을 resolve
와 reject
로 지정하고, 이 순서를 준수하도록 요구합니다. 이는 reject, resolve
와 같은 순서 혼동을 방지하고, 코드의 일관성을 유지하기 위함입니다. 또한, 사용되지 않는 매개변수는 _resolve
또는 _reject
와 같이 밑줄로 시작하는 이름을 사용할 수 있습니다.
예시
// 단일 매개변수인 경우
new Promise(function (resolve) {
// 비동기 작업 수행
});
// 두 개의 매개변수를 사용하는 경우
new Promise(function (resolve, reject) {
// 비동기 작업 수행
});
// 사용되지 않는 매개변수 표시
new Promise(function (_resolve, _reject) {
// 비동기 작업 수행
});
잘못된 예시
// 매개변수의 순서가 잘못된 경우
new Promise(function (reject, resolve) {
// 비동기 작업 수행
});
// 표준이 아닌 매개변수 이름을 사용하는 경우
new Promise(function (ok, fail) {
// 비동기 작업 수행
});
// 단순한 밑줄(_)을 사용하는 경우
new Promise(function (_, reject) {
// 비동기 작업 수행
});
옵션 설정
promise/param-names
규칙은 프로젝트의 코딩 스타일에 맞게 매개변수 이름 패턴을 커스터마이즈할 수 있는 옵션을 제공합니다.
-
resolvePattern
: 첫 번째 매개변수 이름의 정규 표현식 패턴을 지정합니다. 기본값은"^_?resolve$"
이며, 밑줄로 시작하는resolve
또는resolve
를 허용합니다. -
rejectPattern
: 두 번째 매개변수 이름의 정규 표현식 패턴을 지정합니다. 기본값은"^_?reject$"
이며, 밑줄로 시작하는reject
또는reject
를 허용합니다.
아래와 같이 커스터마이징 가능합니다.
{
"rules": {
"promise/param-names": ["error", {
"resolvePattern": "^onSuccess$",
"rejectPattern": "^onError$"
}]
}
}
resolve
대신 onSuccess
, reject
대신 onError
를 사용하도록 강제합니다.
결론, promise/param-names
규칙을 통해 Promise
생성 시 매개변수의 이름과 순서를 표준화하면, 코드 가독성과 유지보수성이 향상된다~