Skip to content
← Back to rules

eslint/func-style 스타일

An auto-fix is available for this rule.

동작 방식

함수 선언 또는 변수에 할당된 함수 표현식 중 하나를 일관되게 사용하도록 강제합니다.

왜 문제인가요?

이 규칙은 함수 스타일의 특정 형식, 즉 함수 선언 또는 변수에 할당된 함수 표현식 중 하나를 요구합니다. 설정에서 선호하는 방식을 지정할 수 있습니다.

예시

js
// 함수 선언
function doSomething() {
  // ...
}

// 변수에 할당된 화살표 함수 표현식
const doSomethingElse = () => {
  // ...
};

// 변수에 할당된 함수 표현식
const doSomethingAgain = function () {
  // ...
};

기본값 "expression" 옵션과 함께 잘못된 코드 예시:

js
/* func-style: ["error", "expression"] */

function foo() {
  // ...
}

"declaration" 옵션과 함께 잘못된 코드 예시:

js
/* func-style: ["error", "declaration"] */
var foo = function () {
  // ...
};

var foo = () => {};

"declaration"{"overrides": { "namedExports": "expression" }} 옵션과 함께 잘못된 코드 예시:

js
/* func-style: ["error", "declaration", { "overrides": { "namedExports": "expression" } }] */
export function foo() {
  // ...
}

"expression"{"overrides": { "namedExports": "declaration" }} 옵션과 함께 잘못된 코드 예시:

js
/* func-style: ["error", "expression", { "overrides": { "namedExports": "declaration" } }] */
export var foo = function () {
  // ...
};

export var bar = () => {};

기본값 "expression" 옵션과 함께 올바른 코드 예시:

js
/* func-style: ["error", "expression"] */
var foo = function () {
  // ...
};

"declaration" 옵션과 함께 올바른 코드 예시:

js
/* func-style: ["error", "declaration"] */
function foo() {
  // ...
}
// 메서드(객체에 할당된 함수)는 이 규칙의 대상이 아님
SomeObject.foo = function () {
  // ...
};

"declaration", { "allowArrowFunctions": true } 옵션과 함께 추가적인 올바른 코드 예시:

js
/* func-style: ["error", "declaration", { "allowArrowFunctions": true }] */
var foo = () => {};

"declaration"{"overrides": { "namedExports": "expression" }} 옵션과 함께 올바른 코드 예시:

js
/* func-style: ["error", "declaration", { "overrides": { "namedExports": "expression" } }] */
export var foo = function () {
  // ...
};
export var bar = () => {};

"expression"{"overrides": { "namedExports": "declaration" }} 옵션과 함께 올바른 코드 예시:

js
/* func-style: ["error", "expression", { "overrides": { "namedExports": "declaration" } }] */
export function foo() {
  // ...
}

{"overrides": { "namedExports": "ignore" }} 옵션과 함께 올바른 코드 예시:

js
/* func-style: ["error", "expression", { "overrides": { "namedExports": "ignore" } }] */
export var foo = function () {
  // ...
};

export var bar = () => {};
export function baz() {
  // ...
}

구성

첫 번째 옵션

타입: "expression" | "declaration"

두 번째 옵션

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

allowArrowFunctions

타입: boolean

기본값: false

true로 설정되면, 스타일 설정과 관계없이 화살표 함수를 허용합니다.

allowTypeAnnotation

타입: boolean

기본값: false

true로 설정되면, 스타일 설정과 관계없이 타입 애노테이션이 있는 함수를 허용합니다.

overrides

타입: object

overrides.namedExports

타입: "ignore" | "expression" | "declaration"

기본값: null

사용 방법

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

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

참고 자료