Header Banner
GG Logo

Future Engineering

기술의 최전선을 기록합니다.

기술 자료/FrontEnd/[중요도 낮음] ESLint의 promise/param-names 규칙

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

FrontEnd6개월 전

해당 경고는 eslint-plugin-promiseparam-names 규칙에 의해 발생한 것. 새로운 Promise 객체를 생성할 때 매개변수의 이름과 순서를 일관되게 사용하도록 강제합니다. 따라서 매개변수 이름을 resolvereject로 지정하고, 이 순서를 지켜야 합니다.

 

Promise 생성자를 사용할 때, 매개변수의 이름과 순서를 일관되게 지정하는 것은 코드의 가독성과 유지보수성에 큰 영향을 미칩니다. ESLint의 promise/param-names 규칙은 이러한 일관성을 강제하여 개발자가 표준화된 코드를 작성하도록 도와줍니다.

 

규칙 설명

promise/param-names 규칙은 새로운 Promise 객체를 생성할 때, 매개변수의 이름을 resolvereject로 지정하고, 이 순서를 준수하도록 요구합니다. 이는 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 생성 시 매개변수의 이름과 순서를 표준화하면, 코드 가독성과 유지보수성이 향상된다~