Skip to content
← Back to rules

eslint/arrow-body-style 스타일

An auto-fix is available for this rule.

작동 방식

이 규칙은 화살표 함수 본문에 중괄호를 사용하는지 여부를 강제하거나 금지할 수 있습니다.
화살표 함수는 다음 두 가지 형태 중 하나를 사용할 수 있습니다:

  • 블록 본문 () => { ... }
  • 또는 압축 본문 () => 표현식으로 암시적 반환을 사용합니다.

왜 좋지 않은가?

블록 본문과 압축 본문을 일관되지 않게 사용하면 코드의 가독성이 떨어집니다.
압축 본문은 단일 표현식만 허용되며, 그 값은 암시적으로 반환됩니다.

옵션

첫 번째 옵션:

  • 타입: string
  • 열거값: "always", "as-needed", "never"
  • 기본값: "as-needed"

가능한 값:

  • never: 함수 본문 주변에 중괄호를 사용하지 않도록 강제합니다 (화살표 함수를 표현식 반환 전용으로 제한)
  • always: 함수 본문 주변에 중괄호를 사용하도록 강제합니다
  • as-needed: 중괄호를 생략할 수 있는 경우 생략하도록 강제합니다 (기본값)

두 번째 옵션:

  • 타입: object
  • 속성:
    • requireReturnForObjectLiteral: boolean (기본값: false) - 객체 리터럴의 경우 중괄호와 명시적 반환을 요구합니다.

참고: 이 옵션은 첫 번째 옵션이 "as-needed"인 경우에만 적용됩니다.

예시 구성:

json
{
  "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": true }]
}

예시

"never"

never 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* arrow-body-style: ["error", "never"] */

/* ✘ 잘못됨: */
const foo = () => {
  return 0;
};

never 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* arrow-body-style: ["error", "never"] */

/* ✔ 올바름: */
const foo = () => 0;
const bar = () => ({ foo: 0 });

"always"

always 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* arrow-body-style: ["error", "always"] */

/* ✘ 잘못됨: */
const foo = () => 0;

always 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* arrow-body-style: ["error", "always"] */

/* ✔ 올바름: */
const foo = () => {
  return 0;
};

"as-needed" (기본값)

as-needed 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* arrow-body-style: ["error", "as-needed"] */

/* ✘ 잘못됨: */
const foo = () => {
  return 0;
};

as-needed 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* arrow-body-style: ["error", "as-needed"] */

/* ✔ 올바름: */
const foo1 = () => 0;

const foo2 = (retv, name) => {
  retv[name] = true;
  return retv;
};

const foo3 = () => {
  bar();
};

"as-needed" + requireReturnForObjectLiteral

{ "requireReturnForObjectLiteral": true } 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }] */

/* ✘ 잘못됨: */
const foo = () => ({});
const bar = () => ({ bar: 0 });

{ "requireReturnForObjectLiteral": true } 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }] */

/* ✔ 올바름: */
const foo = () => {};
const bar = () => {
  return { bar: 0 };
};

구성

첫 번째 옵션

타입: "as-needed" | "always" | "never"

두 번째 옵션

이 옵션은 다음 속성을 가진 객체입니다:

requireReturnForObjectLiteral

타입: boolean

기본값: false

사용 방법

이 규칙을 설정 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "arrow-body-style": "error"
  }
}
bash
oxlint --deny arrow-body-style

참고 자료