eslint/arrow-body-style 스타일
작동 방식
이 규칙은 화살표 함수 본문에 중괄호를 사용하는지 여부를 강제하거나 금지할 수 있습니다.
화살표 함수는 다음 두 가지 형태 중 하나를 사용할 수 있습니다:
- 블록 본문
() => { ... } - 또는 압축 본문
() => 표현식으로 암시적 반환을 사용합니다.
왜 좋지 않은가?
블록 본문과 압축 본문을 일관되지 않게 사용하면 코드의 가독성이 떨어집니다.
압축 본문은 단일 표현식만 허용되며, 그 값은 암시적으로 반환됩니다.
옵션
첫 번째 옵션:
- 타입:
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